I've followed the guide on installing composer globally from the composer site: https://getcomposer.org/doc/00-intro.md#globally
The problem is I have to use sudo every time I use composer. This is a pain as every vendor folder that's created with sudo composer update
is under the owner of root
which I have to change to www-data
.
Things I've tried:
I've tried using chmod +x /usr/local/bin/composer
which still requires me to run composer with sudo as the file is owned by root
.
Changing owner of /usr/local/bin/composer
to www-data:www-data
with privileges set to 775. Still requires me to run composer with sudo prepended first.
How can I resolve this so I do not have to use sudo
every time I run composer?
This is from its "plugins" and "scripts" features. Plugins and scripts have full access to the user account which runs Composer. For this reason, it is strongly advised to avoid running Composer as super-user/root.
The installer will check a few PHP settings and then download composer.phar to your working directory. This file is the Composer binary. It is a PHAR (PHP archive), which is an archive format for PHP which can be run on the command line, amongst other things. Now run php composer.phar in order to run Composer.
Composer is a dependency management tool for PHP projects. It allows you to declare the libraries your project requires and installs/updates them for you. It is deployed as a PHAR (PHP Archive) file. Phar is already enabled by default on your DreamHost server.
Figured out the problem.
1) I either had to clear out the cache in /home/lamp/.composer
or change the owner of this
2) And change the owner of /usr/local/bin/composer
After doing these 2 changes I can now run composer commands without using sudo
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With