• 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ń

Object Storage Arubacloud
0 głosów
340 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 (287,950 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 (287,950 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ź 143 wizyt
pytanie zadane 6 maja 2017 w PHP przez Adam Ostrogórski Obywatel (1,070 p.)
0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 5 stycznia 2020 w PHP przez niezalogowany
0 głosów
2 odpowiedzi 221 wizyt
pytanie zadane 13 lutego 2019 w PHP przez niezalogowany

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...