Composer install not working with user_data setup script

Posted October 15, 2019 6.4k views
PHPDigitalOceanAutomated Setups


I’m trying to setup an automated script that should basically be able to automatically clone a project from my Github and install its dependencies via Composer.

Here is a simple version of the user_data that I’m sending through the API (supposing that all needed packages have correctly been installed):


git clone[...]
/usr/bin/php -d memory_limit=-1 composer.phar install

The problem is that the composer install command does nothing.

Everything else from my script works. I redirect all my stdin and stderr to a log file while my script is running, but when it comes to this command, nothing appears in this file, just like if it didn’t run.

The weird thing is that when I perform this command manually through ssh, it works as expected and install my dependencies correctly.

Please note that I already tried many alternatives, like installing composer via apt or via the official installer with that kind of script, without success:


git clone[...]
apt-get -y install composer
composer install

Does anyone have any idea to solve this issue?


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

I finally found my solution

It turns out that while running the composer-setup.php through a setup script, this message will appear:

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

So the solution is simple, according to this answer on StackOverflow, simply add this line after completing the composer setup:
export COMPOSER_HOME="$HOME/.config/composer";

The complete setup script now looks like this:


apt-get -y install curl php-cli php-mbstring git unzip
curl -sS -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
export COMPOSER_HOME="$HOME/.config/composer";
git clone[...] html/
cd html/
php /usr/local/bin/composer install

Hope it will help you if you are facing the same issue.

  • Hi @MartinMarx,

    Good catch!

    I think the script looks good, one thing, I’ll recommend is putting some error catching just to be sure if something fails, you’ll know it.


Hi @MartinMarx,

I see you mentioned you’ve tried to install composer via the normal ways but did you try the following :

download the Composer installer

php -r "copy('', 'composer-setup.php');"

Install PHP Composer

Installing PHP Composer requires curl, unzip, and a few other utilities. Install them by entering the following:

apt-get install curl php-cli php-mbstring git unzip

Set Composer as a command accessible from the whole system

php composer-setup.php --install-dir=/usr/local/bin --filename=composer

This should be enough for the installation. Please excuse me if you actually tried these steps.


  • Hi @KDSys and thank you for your answer.

    Indeed, I already tried this solution but it didn’t work.

    The installation process using this method correctly installs Composer, but then the php /usr/local/bin/composer install command does nothing when I run it from my setup script, but works normally when I run it manually.

    Again I know that’s really weird, but after days of investigation I still can’t find any solution.

    Thank you again for your answer, and please feel free to tell me if you have any other idea.