cloudformation作曲家安装

cloudformation composer install

所以我正在为我的 AWS 设置使用 cloudformation,我正在尝试 运行 composer 但出于某种原因,无论我在用户数据部分中输入什么命令,我总是会出错,这是我的错误:

php /usr/local/bin/composer.phar create-project composer/satis /var/www/satis --stability=dev

  [RuntimeException]                                                                        
  The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly 

这是我在用户数据部分的代码:

"#composer\n",
"curl -sS https://getcomposer.org/installer | php\n",
"mv composer.phar /usr/local/bin/composer.phar\n",

"#satis\n",
"php /usr/local/bin/composer.phar create-project composer/satis /var/www/satis --stability=dev\n",

有没有人知道为什么这可能行不通以及我应该这样做?

Composer 正在查找 .composer 目录的位置。导出 HOME 或 COMPOSER_HOME 环境变量,例如: HOME=/root php /usr/local/bin/composer.phar create-project composer/satis /var/www/satis --stability=dev 这样就可以正常工作了。

我在 amazon linux ami 2 上遇到了类似的问题,它显示在日志中 All settings correct for using Composer. The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly,但根本没有安装。以下是修复它的方法。可能对那些宁愿浪费 2.3 小时的人有所帮助!

sudo curl -sS https://getcomposer.org/installer | sudo php
mv composer.phar /usr/bin/composer
chmod +x /usr/bin/composer
export COMPOSER_HOME=/root

同意Ntwobike的回答。

启动 AWS EC2 实例时,我通过 运行 在用户数据脚本 运行 中安装 Ansible 剧本来安装作曲家。 (用户数据脚本在实例构建过程中由cloud-init调用)。

出于某种原因,此时在构建过程中未设置 $HOME 环境变量。所以我需要添加 'export HOME=/root' - 例如

# These need to be set to enable the composer installer to run.  It is probably due to an issue                                                                                                                                  
# with the $HOME variable not yet being set at this point in the instance creation.                                                                                                                                              
export HOME=/root
ansible-playbook --extra-vars "target=localhost"  playbooks/debian-9/drush.yml