Amazon web services CodeDeploy应用程序上缺少Composer环境变量

Amazon web services CodeDeploy应用程序上缺少Composer环境变量,amazon-web-services,composer-php,aws-code-deploy,Amazon Web Services,Composer Php,Aws Code Deploy,我正在将AWS自动缩放组与代码部署集成 我为AfterInstall hook编写了一个bash脚本 由于我的代码使用的是PHP,脚本将执行composer update,composer dump autoload 这就是问题所在。 当我部署时,部署会失败,并显示此日志。 [运行时异常] 必须设置HOME或COMPOSER_HOME环境变量,COMPOSER才能正确运行 但当我通过SSH访问实例并运行composer时,它工作得很好 如何解决此问题?有人解决过此问题吗 任何答复都将不胜感激。谢

我正在将AWS自动缩放组与代码部署集成

我为AfterInstall hook编写了一个bash脚本

由于我的代码使用的是PHP,脚本将执行composer updatecomposer dump autoload

这就是问题所在。 当我部署时,部署会失败,并显示此日志。

[运行时异常]

必须设置HOME或COMPOSER_HOME环境变量,COMPOSER才能正确运行

但当我通过SSH访问实例并运行composer时,它工作得很好

如何解决此问题?有人解决过此问题吗


任何答复都将不胜感激。谢谢您的时间。

我在使用时遇到了类似的问题,我添加了一个

您也应该能够在中实现这一点,例如在创建应用程序时


另请参见

能否确保您在运行钩子脚本的appspec文件中指定的用户也可以访问env变量?如果有多个用户在实例上运行,则可能不是每个用户都可以访问env变量,这取决于您如何设置它。

对于使用CodeDeploy安装composer,我也有同样的顾虑。它在开发中运行良好,但当我在生产中运行时,我得到: [stderr][RuntimeException] [stderr]必须设置HOME或COMPOSER_HOME环境变量,COMPOSER才能正确运行 我SSH到实例并运行composer,我得到:

user@server:~/httpdocs$ /opt/plesk/php/7.2/bin/php /usr/lib/plesk-9.0/composer.phar install
使用包信息加载composer存储库 从锁文件安装依赖项(包括需要开发) 没有要安装或更新的内容 生成优化的自动加载文件 user@server:~/httpdocs$

我有一个ec2实例,部署在stg和prod的两个单独目录中。

@JesuiGenial不客气:)请记住,如果修复了,请将我设置为回答者:)注意:我又添加了一个屏幕快照,谢谢它成功了!我找到了一种更简单的方法,就是用ENV变量运行composer。。就像这个COMPOSER\u HOME=$COMPOSER\u HOME COMPOSER安装——没有交互——没有开发——优化自动加载哦,太棒了!很高兴这有帮助:D:D:DOh我甚至不知道我可以指定哪个用户运行钩子脚本。谢谢:)