Jedes Mal, wenn ich Composer (zB sudo composer install, sudo composer self-update
) starte, muss ich dies mit sudo ausführen, da der Eigentümer der Datei root ist.
Jedes Mal, wenn ich den Composer mit sudo root verwende, gehört der Vendor-Ordner und dann muss ich den Besitzer dieses Ordners / dieser Berechtigungen von root in www-data ändern.
Was ist der beste Weg, um dies zu beheben, damit ich nicht jedes Mal sudo ausführen muss?
Eigentümer von /usr/local/bin/composer
von root auf www-data ändern ?
Ist dies die ideale Möglichkeit, um zu vermeiden, dass bei jeder Verwendung von sudo der Besitzer gewechselt und Berechtigungen zugewiesen werden müssen composer install
?
Bearbeiten:
Die Berechtigungen für den Komponisten sind derzeit -rwxr-xr-x
. Und ich habe versucht , den Besitzer des Umschaltens /usr/local/bin/composer
auf über www-data:www-data
mit Berechtigungen auf 775, und noch kann ich nicht Komponist laufen ohne Laufen sudo
.
composer self-update
ohne sudo laufen . Muss ich 775 verwenden?composer update
und dies funktioniert auch nicht mit diesen Berechtigungen. Ich muss immer noch zuerst sudo verwenden. Dies ist der Fehler, den ich bekommefile_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
)Ich beschäftige mich seit Wochen mit diesem Problem.
Ich denke, die Lösung ist, Composer-Selbst-Update mit der -H auszuführen
Bevor Sie dies tun, müssen Sie die Verzeichnisse .composer im Stammverzeichnis und das Ausgangsverzeichnis des Benutzers entfernen, den Sie composer ausführen möchten.
Wenn Sie die Selbstaktualisierung von sudo composer ohne das Flag -H ausführen, wird ~ / .composer erstellt, dessen Eigentümer root ist, und es wird verhindert, dass andere composer-Befehle Berechtigungsfehler aufweisen.
Meiner Meinung nach sollte das Aufrufen von sudo composer self-update keine Dateien im Stammverzeichnis des aktuellen Benutzers erstellen.
Beachten Sie, wenn Sie diese Anweisungen auf Ubuntu 14.04 Composer befolgen, wird der Cache in:
Eher, als:
Dies liegt an der in Ubuntu 14.04 definierten Umgebungsvariablen XDG_RUNTIME_DIR, die jedoch in Ubuntu 12.04 offenbar nicht definiert ist
Eine verwandte Diskussion hier
quelle
$ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
~/.composer
Ordners scheint das Problem zu lösen.