Za każdym razem, gdy uruchamiam kompozytora (np. sudo composer install, sudo composer self-update
Itp.), Muszę uruchamiać to z sudo, ponieważ właścicielem pliku jest root.
Jednak za każdym razem, gdy korzystam z kompozytora z sudo root jest właścicielem folderu dostawcy, a następnie muszę zmienić właściciela tego folderu / uprawnień z root na www-data.
Jak najlepiej to naprawić, aby nie musiałem uruchamiać sudo za każdym razem?
Zmienić właściciela /usr/local/bin/composer
z root na www-data?
Czy to idealny sposób, aby sobie z tym poradzić, aby uniknąć konieczności zmiany własności i przypisywania uprawnień za każdym razem, gdy używam sudo composer install
?
Edycja:
uprawnienia dla kompozytora są obecnie -rwxr-xr-x
. Próbowałem też zmienić właściciela /usr/local/bin/composer
na www-data:www-data
z uprawnieniami ustawionymi na 775 i nadal nie mogę uruchomić kompozytora bez uruchamiania sudo
.
composer self-update
bez użycia sudo. Czy muszę używać 775?composer update
i to również nie działa z tymi uprawnieniami. Nadal muszę najpierw użyć sudo. To jest błąd, który dostajęfile_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
)Zajmowałem się tym problemem od tygodni.
Myślę, że rozwiązaniem jest uruchomienie automatycznej aktualizacji kompozytora z opcją -H
Zanim to zrobisz, usuń katalogi .composer w katalogu głównym i katalog domowy użytkownika, którego chcesz uruchomić.
Uruchomienie automatycznej aktualizacji sudo kompozytora bez flagi -H spowoduje utworzenie ~ / .composer, którego właścicielem jest root, i zapobiegnie błędom uprawnień innych poleceń kompozytora.
Moim zdaniem wywołanie samodzielnej aktualizacji kompozytora sudo nie powinno tworzyć plików należących do roota w bieżącym katalogu domowym użytkowników.
Uwaga: jeśli postępujesz zgodnie z tymi instrukcjami na Ubuntu 14.04 kompozytor umieści pamięć podręczną w:
Zamiast:
Wynika to ze zmiennej środowiskowej XDG_RUNTIME_DIR zdefiniowanej w Ubuntu 14.04, ale wydaje się, że nie jest zdefiniowana w Ubuntu 12.04
Powiązana dyskusja tutaj
źródło
$ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
~/.composer
folderu wydaje się rozwiązać problem.