Widzę, że mój użytkownik jest członkiem grupy Apache. Dodałem i potwierdziłem w następujący sposób
$ sudo usermod -a -G apache `whoami` # add my user to apache group
$ sudo chmod -R g+w . # permit group members to write
$ groups `whoami` # confirm I'm in the apache group
Jednak gdy próbuję uruchomić rdzeń aktualizacji drush, a nawet drush cron
$ drush cc all
unlink(sites/default/files/css/css_71ba7c25a8d3c47c68a8e05608ae525c.css):[warning]
Permission denied file.inc:482
I wygląda pamięć podręczna CSS w tej sytuacji
$ ll
total 1536
drwxrwxr-x. 2 apache apache 12288 Nov 26 10:12 .
drwxrwxr-x. 11 apache apache 4096 Nov 24 20:35 ..
-rw-rw-r-- 1 apache apache 162269 Nov 26 10:06 css_00d5f4d7c5c92cd4f.css
-rw-rw-r-- 1 apache apache 158090 Nov 26 10:02 css_0605989692a2119d305.css
-rw-rw-r-- 1 apache apache 162269 Nov 26 10:02 css_0779dcac71ee9aa8e02d9e.css
Zakładam, że moje konto użytkownika, które ma dostęp do sudo, powinno być członkiem grupy apache (lub www-data) i że drzewo plików powinno pozwalać na grupowy dostęp do zapisu. Każda pomoc lub punkty we właściwym kierunku byłyby bardzo mile widziane.
newgrp apache
bez sudo i spróbuj ponownieOdpowiedzi:
Prawdopodobnie o wiele prostszym podejściem jest w ogóle nie marnowanie przydziałów grupy użytkownika i zamiast tego uruchamianie drush jako użytkownik serwera WWW (tj. Apache, www-data).
Użyj sudo:
lub na debian / ubuntu:
Utwórz alias polecenia:
Następnie, aby mieć pewność, że zawsze tak działa drush, dodaj alias:
lub na debian / ubuntu:
Teraz, gdy uruchomisz dowolne polecenie drush, sudo wyświetli monit o podanie hasła, a polecenie będzie działać jako użytkownik serwera WWW. Nigdy więcej problemów z uprawnieniami do odczytu i zapisu plików.
źródło
Chociaż druga odpowiedź ma charakter informacyjny, teraz używam odpowiedniego uprawnienia użytkownika, jak opisano w
Zabezpieczanie uprawnień do plików i własności
Który otwiera się za pomocą
źródło
Kiedy biegłem drush, ponieważ
www-data
drush nie był już dostępny, ponieważ moja $ PATH się zmieniła .Aby obejść ten problem, możesz wejść na całą ścieżkę drush.
Na przykład
Aby uzyskać ścieżkę swojego drusha, możesz biegać:
Co oznacza, że możesz także uruchomić:
co eliminuje konieczność twardego kodowania ścieżki w poleceniu.
źródło