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

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

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

但是,我最终以下面的日志。

我的实际目标是这样的;

  1. 安装PHP 5.5,PHP 5.5-cli,PHP-Mcrypt
  2. chmod app / storage(recursion)是可写的
  3. 下载composer.phar
  4. 运行composer php安装
  5. 使用来自图层的数据自定义json – mysql和redis设置从模板创buildconfiguration文件。
  6. 创buildapache2虚拟主机以指向通过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 

在这种情况下,您必须使用自定义食谱 。

在实例创build过程中,您的自定义主厨食谱与默认的AWS Chef Cookbook合并,您可以控制部署应用程序需要执行哪些操作。

您还可以更改PHP应用服务器的默认AWS Chef配方,或者创build一个自定义层并控制几乎所有的东西。