php - tengo - instalar symfony con composer
Compositor: file_put_contents(./ composer.json): error al abrir la secuencia: permiso denegado (6)
Estoy tratando de instalar Prestissimo en un servidor Ubuntu 16.04, pero eso lleva a un error:
$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer
[ErrorException]
file_put_contents(./composer.json): failed to open stream: Permission denied
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...
He iniciado sesión como usuario
kramer65
, por lo que no sabría por qué no puede escribir en mi carpeta de inicio.
Mi reacción normal a un
permission denied
es usar
sudo
, pero el compositor siempre dice:
¡No ejecute Composer como usuario root / superusuario! Consulte https://getcomposer.org/root para más detalles.
¿Alguna idea de cómo puedo resolver esto?
En mi caso,
.composer
era propiedad de root, así que hice
sudo rm -fr .composer
y luego funcionó mi requerimiento global.
¡Ten cuidado! No quieres usar ese comando si no estás seguro de lo que estás haciendo.
En mi caso, no tengo problemas con
~/.composer
.
Entonces, al estar dentro de la carpeta raíz de la aplicación Laravel, hice
sudo chown -R $USER composer.lock
y fue útil.
Este podría ser un caso súper marginal, pero si está utilizando Travis CI y aprovechando el almacenamiento en caché, es posible que desee borrar todo el caché y volver a intentarlo.
Solucioné mi problema cuando iba de sudo a compilaciones no sudo.
Para resolver esto, debe abrir una ventana de terminal y escribir este comando:
sudo chown -R user ~/.composer
(siendo el
user
su usuario actual, en su caso,
kramer65
)
Después de ejecutar este comando, debe tener permiso para ejecutar el comando global require de su compositor.
También es posible que deba eliminar el archivo .composer del directorio actual, para hacerlo, abra una ventana de terminal y escriba este comando:
sudo rm -rf .composer
También enfrenté este problema, pero en mi caso, estaba en el directorio equivocado. Comprueba el directorio en el que estás trabajando
Tuve este problema para instalar laravel / lumen.
Puedo resolver con el siguiente comando:
$ sudo chown -R $USER ~/.composer/