By Martin Marx
Hi,
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):
#!/bin/bash
[...]
git clone git@github.com[...]
/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:
#!/bin/bash
[...]
git clone git@github.com[...]
apt-get -y install composer
composer install
Does anyone have any idea to solve this issue?
Greetings,
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
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:
#!/bin/bash
[...]
apt-get -y install curl php-cli php-mbstring git unzip
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
export COMPOSER_HOME="$HOME/.config/composer";
git clone git@github.com[...] html/
cd html/
php /usr/local/bin/composer install
Hope it will help you if you are facing the same issue.
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('https://getcomposer.org/installer', '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.
Regards, KDSys
for my solution i do :
apt-get -y install php-cli php-mbstring composer -y
export COMPOSER_HOME="$HOME/.config/composer";
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
echo "Symlink /usr/bin/composer so that both refer to same composer"
ln -sfn /usr/local/bin/composer /usr/bin/composer
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.