AWS opsworks构build生命周期和亚马逊linux

我最近一直在使用Opsworks,并且GIT集成在我的服务器版本上部署应用程序给我留下了深刻的印象。 但我有一个要求,由于外部库使用PHP 5.4>亚马逊Linux提供了PHP5.3安装。 现在我创build了一个基于Amazon Linux的单独ec2实例,并升级了PHP版本,实际上我使用自定义用户数据来完成这个任务。 然后我把它保存为一个自定义的AMI。 当我将这个设置为AMI在opsworks中用于一个实例时,启动服务器时出现了由于冲突的Apache等版本而出现的错误。因此,看起来我的AMI几乎被忽略了,或者它构build了我的AMI并使用了自定义数据,然后尝试运行CHEF食谱。 然后,我相信这可能是厨师的食谱没有安装他们所需要的,因此错误。

我已经尝试使用默认情况下使用PHP 5.5的Ubuntu AMI做同样的事情,但我已经试图启用mod_rewrite为我的应用程序目录在这里单独的问题。 虽然我正试图通过这个解决scheme来解决我在Amazon Linux AMI上的问题

所以我的问题是,厨师食谱运行后,我的user_data? 或者我理论上可以卸载厨师将安装在我的自定义user_data中的每一件事情,然后我的实际依赖关系将安装后? 我目前对Chef的熟悉程度还不足以尝试编辑默认的PHP-APP-Server配方来完成我所需要的操作(我也不确定我需要从AWS GitHub仓库中执行此操作)

还是有没有人有更好的想法?

我相信PHP 5.5现在可以在AL回购作为php55。

您可以在这里通过您的厨师食谱覆盖PHP包: https : //github.com/aws/opsworks-cookbooks/blob/release-chef-11.4/mod_php5_apache2/attributes/default.rb#L19

您可以使用自定义JSON或使用属性文件来覆盖: http : //docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-components-attributes.html

你很可能需要添加一个自定义的配方来删除旧版本的PHP,例如: 在Amazon Linux上用yum更新PHP

根据我的理解,你需要修改你的厨师食谱(即学习一点厨师)来更改安装的PHP版本。 否则,你会继续遇到问题,即使你安装了不同的PHP版本,厨师会自动尝试恢复它,因为这是它应该做的。