• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony app/cache i app/logs - ustawianie uprawnień

Aruba Cloud - Virtual Private Server VPS
0 głosów
626 wizyt
pytanie zadane 9 kwietnia 2017 w PHP przez Adam Ostrogórski Obywatel (1,070 p.)

Witam,

w jaki sposób w Symfony można ustawić uprawnienia dla folderów app/cache i app/logs, aby móc wykonywać czyszczenie cache?

Wyskakiwał mi błąd: 

"RuntimeException: Failed to write cache file"

Próbowałem rozwiązań od Symfony i próbowałem zmiany ustawień za pomocną komend: 

chown -R nazwa-usera:ścieżka app/cache

chown -R nazwa-usera:ścieżka  app/log

Próbowałem też usunąć samą zawartość katalogów za pomocą:

"rm -rf app/log/* app/cache/*"

Obecnie, gdy chcę wykonać clear:cache dla app/cache w katalogu mojej aplikacji wyskakuje mi błąd:

[Symfony\Component\Console\Exception\CommandNotFoundException]  
  There are no commands defined in the "clear" namespace.

Czy ktoś wie, w jaki sposób można to rozwiązać?

 

[Symfony 2.8; Ubuntu 16.04.2]

3 odpowiedzi

+1 głos
odpowiedź 9 kwietnia 2017 przez Arkadiusz Waluk Ekspert (290,050 p.)

chown -R nazwa-usera:ścieżka app/cache

Ścieżka?

U mnie w Symfony 3 działa chmod 777 -R var/ (u Ciebie pewnie trzeba by podmienić var na app). Może danie dostępu wszystkiemu i wszystkim to nienajlepsze ustawienie, ale na lokalnym komputerze nie widzę problemu.

komentarz 9 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)

Adam Ostrogórski wejdź do katalogu app i podaj wynik komendy ls -a, może poprostu coś źle wpisujesz i uprawnienia się nie zmieniają.

komentarz 9 kwietnia 2017 przez Arkadiusz Waluk Ekspert (290,050 p.)

(raczej ls -l, ewentualnie z "a", żeby były widoczne uprawnienia)

Zastanawiam się czym jest podana w cytacie "ścieżka", gdyż po dwukropku powinna przecież zostać podana grupa. Podobnie też nie wiemy kto jest właścicielem tych plików, czyli na jakiego usera zmieniasz - serwer najczęściej nie działa nie działa jako Twój użytkownik, a jako www-data (chyba że coś pozmieniałeś).

komentarz 9 kwietnia 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
Rozumiem. Po podaniu komendy:

chmod 777 -R app/cache

wyskakuje, że nie mam uprawnień. Czy wiesz, gdzie mogę robić błąd?
komentarz 9 kwietnia 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
Zawartość katalogu app mojej aplikacji:

drwxr-xr-x 7   nazwa usera  nazwa usera  4096 kwi  9 12:48 .
drwxr-xr-x 8   nazwa usera  nazwa usera 4096 kwi  2 15:56 ..
-rw-r--r-- 1 nazwa usera  nazwa usera    101 mar  6 07:33 AppCache.php
-rw-r--r-- 1 nazwa usera  nazwa usera   1427 kwi  3 10:54 AppKernel.php
-rw-r--r-- 1 nazwa usera  nazwa usera    263 mar  6 07:33 autoload.php
-rw-r--r-- 1 nazwa usera  nazwa usera  104179 mar  6 07:35 bootstrap.php.cache
drwxrwxrwx 4 nazwa usera  nazwa usera    4096 mar 31 22:25 cache
-rw-r--r-- 1 nazwa usera  nazwa usera    3906 mar  6 07:36 check.php
drwxr-xr-x 2 nazwa usera  nazwa usera   4096 kwi  5 10:24 config
-rwxr-xr-x 1 nazwa usera  nazwa usera    897 mar  6 07:33 console
-rw-r--r-- 1 nazwa usera  nazwa usera    143 mar  6 07:33 .htaccess
drwxrwxr-x 2 nazwa usera  nazwa usera   4096 kwi  9 12:48 log
drwxrwxrwx 2 nazwa usera  nazwa usera   4096 kwi  9 11:54 logs
-rw-r--r-- 1 nazwa usera  nazwa usera    1358 mar  6 07:33 phpunit.xml.dist
drwxr-xr-x 5 nazwa usera  nazwa usera    4096 kwi  9 12:15 Resources
-rw-r--r-- 1 nazwa usera  nazwa usera   32862 mar  6 07:36 SymfonyRequirements.php
komentarz 9 kwietnia 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
Na początku próbowałem z tą komendą:

chown -R www-data:www-data app/cache

Myślałem, że www-data muszę podmienić na usera, a drugie na ścieżkę katalogu, gdzie znajduje się app/cache.
komentarz 9 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)
Na jakiego użytkownika jesteś zalogowany, podczas pracy?
komentarz 9 kwietnia 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
własny, nie root.
komentarz 9 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)
Bo masz dla pliku cache ustawione wszystkie uprawnienia dla wszystkich, spróbuj jeszcze raz ręcznie usunąć zawartość tych katalogów, a jeśli się nie uda, to spróbuj je usunąć jako root. Jak już to zrobisz, to uruchom aplikację i spróbuj wyczyścić cache komendą cache:clear z konsoli symfony.
komentarz 9 kwietnia 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
Usunąłem ręcznie. Później jeszcze w ten sposób:

sudo rm -rf app/cache

I dalej nie mogę czyścić z konsoli.

Spróbowałem też tak:

sudo php app/console cache:clear --env=prod

i wyczyściłem cały cache od razu. Czy to jest dobra metoda czyszczenia?

Teraz mam podgląd aplikacji w środowisku dev, a w prod już nie. Czy wiecie, co teraz się robi, żeby móc podglądać w środowisku produkcyjnym aplikację?
+1 głos
odpowiedź 9 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)
Czytaj błędy, nie ma przestrzeni nazw clear. Poprawna komenda to cache:clear.
0 głosów
odpowiedź 6 maja 2017 przez Adam Ostrogórski Obywatel (1,070 p.)
Znalazłem dobre rozwiązanie, które u mnie zadziałało, może przyda się innym:

1 wersja rozwiązania:

rm -rf app/cache/*
rm -rf app/logs/*
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo chmod +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

 

2 wersja (jeśli 1 nie zadziała):

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

Podobne pytania

0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 6 maja 2017 w PHP przez Adam Ostrogórski Obywatel (1,070 p.)
0 głosów
0 odpowiedzi 170 wizyt
pytanie zadane 5 stycznia 2020 w PHP przez niezalogowany
0 głosów
2 odpowiedzi 277 wizyt
pytanie zadane 13 lutego 2019 w PHP przez niezalogowany

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...