Oliver Bayes-Shelton
Oliver Bayes-Shelton

Reputation: 6292

cloudformation composer install

So I am using cloudformation for my AWS setup, I am trying to run composer but for some reason no matter what command I put in my userdata section I always can an error, this is my error:

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 

This is my code within the userdata section:

"#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",

Does anyone have any ideas why this might not work and should I should be doing ?

Upvotes: 1

Views: 1537

Answers (3)

bailey86
bailey86

Reputation: 67

Agree with Ntwobike's answer.

When launching AWS EC2 instances I was installing composer by running an Ansible playbook during in the user data script run. (The user data script is called by cloud-init during the instance build process).

For some reason at this point in the build the $HOME environment variable is not set. So I needed to add 'export HOME=/root' - e.g.

# 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

Upvotes: 0

Ntwobike
Ntwobike

Reputation: 2741

I had the similar issue with amazon linux ami 2, it was showing in the log All settings correct for using Composer. The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly, but it was not installed at all. Below is the way to fix it. Might be helpful to somebody rather waisting 2,3 hours!

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

Upvotes: 1

Dennis
Dennis

Reputation: 799

Composer is looking for the location of the .composer directory. Export the HOME or COMPOSER_HOME env variable, e.g. : HOME=/root php /usr/local/bin/composer.phar create-project composer/satis /var/www/satis --stability=dev, it will work fine then.

Upvotes: 6

Related Questions