Cada vez que ejecuto Composer (por ejemplo, sudo composer install, sudo composer self-update
etc.) necesito ejecutar esto con sudo ya que el propietario del archivo es root.
Sin embargo, cada vez que uso el compositor con sudo root posee la carpeta del proveedor y luego tengo que cambiar el propietario de esa carpeta / privilegios de root a www-data.
¿Cuál es la mejor manera de arreglar esto para que no tenga que ejecutar sudo cada vez?
¿Cambiar el propietario de /usr/local/bin/composer
root a www-data?
¿Es esta la forma ideal de manejar esto para evitar tener que cambiar la propiedad y asignar permisos cada vez que uso sudo composer install
?
Editar:
los permisos para el compositor son actualmente -rwxr-xr-x
. Y he intentado cambiar el propietario de /usr/local/bin/composer
over www-data:www-data
con permisos establecidos en 775, y aún así no puedo ejecutar el compositor sin ejecutarlo sudo
.
composer self-update
sin usar sudo. ¿Necesito usar 775?composer update
y esto tampoco funciona con esos permisos. Todavía tengo que usar sudo primero. Este es el error que obtengofile_put_contents(/home/lamp/.composer/cache/repo/https---packagist.org/packages.json): failed to open stream: Permission denied
chown -R lamp:lamp /home/lamp/.composer
)He estado lidiando con este problema durante semanas.
Creo que la solución es ejecutar la actualización automática del compositor con -H
Antes de hacerlo, asegúrese de eliminar los directorios .composer en la raíz y el directorio de inicio del usuario que desea ejecutar Composer.
La ejecución de la actualización automática de sudo composer sin el indicador -H creará ~ / .composer que es propiedad de root y evitará que otros comandos de compositor tengan errores de permiso.
En mi opinión, la actualización automática de sudo composer no debería crear archivos propiedad de root en el directorio de inicio de los usuarios actuales.
Tenga en cuenta que si sigue estas instrucciones en Ubuntu 14.04, el compositor colocará el caché en:
Más bien que:
Esto se debe a la variable de entorno XDG_RUNTIME_DIR definida en Ubuntu 14.04 pero no parece estar definida en Ubuntu 12.04
Una discusión relacionada aquí
fuente
$ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
~/.composer
carpeta parece resolver el problema.