如何在 AWS Opsworks 上安装新版本的 php?

如何在 AWS Opsworks 上安装新版本的 php?

我们的代码库使用 PHP 5.5,我们想要在 AWS Opsworks 上部署,但是在选择 PHP App Server 层时,我们被告知它有 PHP 5.3。

我希望的是,我可以使用默认的 PHP 应用服务器层,然后指定php55 php55-cliphp-mcrypt作为 OS 包 - 操作系统软件包

然而我最终得到了下面的日志。

我的实际目标是这样的;

  1. 安装 PHP 5.5、PHP 5.5-cli、PHP-Mcrypt
  2. chmod app/storage (递归)为可写
  3. 下载 composer.phar
  4. 运行 composer install
  5. 使用来自层自定义 json - mysql 和 redis 设置的数据从模板创建配置文件。
  6. 创建 apache2 虚拟主机以指向已通过 git 部署的新 Laravel 应用程序

因此,任何帮助都将不胜感激。

[2014-04-07T04:37:58+00:00] INFO: execute[Clean up] ran successfully
[2014-04-07T04:37:58+00:00] INFO: Processing package[php-mcrypt] action upgrade (dependencies::default line 14)
[2014-04-07T04:37:58+00:00] INFO: Processing package[php55] action upgrade (dependencies::default line 14)
[2014-04-07T04:37:58+00:00] INFO: package[php55] installing php55-5.5.7-1.65.amzn1 from amzn-updates repository

================================================================================
Error executing action `upgrade` on resource 'package[php55]'
================================================================================


Chef::Exceptions::Exec
----------------------
returned 1, expected 0


Resource Declaration:
---------------------
# In /var/lib/aws/opsworks/cache/cookbooks/dependencies/recipes/default.rb

14:     package rpm do
15:       action :upgrade
16:       version(version)
17:     end
18:   end



Compiled Resource:
------------------
# Declared in /var/lib/aws/opsworks/cache/cookbooks/dependencies/recipes/default.rb:14:in `block in from_file'

package("php55") do
action [:upgrade]
retries 0
retry_delay 2
package_name "php55"
version "5.5.7-1.65.amzn1"
cookbook_name "dependencies"
recipe_name "default"
end

答案1

在这种情况下你必须使用定制食谱

在实例创建期间,您的自定义 Chef Cookbook 将与默认的AWS Chef 烹饪手册并且您可以控制部署应用程序所需的操作。

您还可以更改 PHP 应用服务器的默认 AWS Chef 配方或创建自定义层并控制几乎所有内容。

相关内容