Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Composer global require Laravel/Installer not working on Ubuntu

I'm trying to run composer global require "laravel/installer" on my Ubuntu machine (Trenta OS Distro) and for some reason I can't get it to install.

file_put_contents(./composer.json): failed to open stream: Permission denied

I get the error above on every attempt. I've been unable to find any help on google so I'm guessing this isn't a very common problem. I tried whereis command on that file and it gives me a location

/usr/local/bin/composer

I tried running chmod -R 777 on that file but it did nothing. I don't know what else to do.

Composer was installed on my machine with the following command

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

I thought composer.json only comes with projects, but I shouldn't need an existing project in order to simply set up the Laravel Installer right?

like image 239
JonnySerra Avatar asked May 11 '16 19:05

JonnySerra


1 Answers

I had the same problem and after reading this answer I solved it updating the .composer folder permissions:

sudo chown -R $USER:$USER /home/$USER/.composer

Where $USER is your machine's username.

Update: As @Lucas Bustamante pointed, you don't need to change $USER for your username, its an environment variable already.

As Ian Warner commented out, is not a good idea to run composer as sudo user, because it can lead to security issues.

like image 87
David Noreña Avatar answered Sep 30 '22 09:09

David Noreña