我们的代码库使用 PHP 5.5,我们想要在 AWS Opsworks 上部署,但是在选择 PHP App Server 层时,我们被告知它有 PHP 5.3。
我希望的是,我可以使用默认的 PHP 应用服务器层,然后指定php55
php55-cli
并php-mcrypt
作为 OS 包 -
然而我最终得到了下面的日志。
我的实际目标是这样的;
- 安装 PHP 5.5、PHP 5.5-cli、PHP-Mcrypt
- chmod app/storage (递归)为可写
- 下载 composer.phar
- 运行 composer install
- 使用来自层自定义 json - mysql 和 redis 设置的数据从模板创建配置文件。
- 创建 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 配方或创建自定义层并控制几乎所有内容。