symfony2: nie udało się zapisać katalogu pamięci podręcznej
Musiałem użyć
app/console cache:clear command
Aby rozwiązać problem podczas generowania encji.
Nie mogę teraz załadować mojej strony głównej na:
http://localhost/projet_etienne/web/app_dev.php
Jest napisane:
W tym celu należy skontaktować się z działem obsługi klienta pod numerem telefonu + 48 22 222 22 22, a następnie skontaktować się z działem obsługi klienta pod numerem telefonu + 48 22 222 22 22.php".
Nie rozumiem zbyt wiele o tym biznesie pamięci podręcznej!
W moim app/cache
folderze mam dev
, dev_new
, dev_old
folder. Czy to normalne?
The
app/console cache:clear
Generuje przez sposób a:
Proszę o pomoc![ErrorException] Ostrzeżenie: Zmień nazwę (w/var/GSP / projet_etienne / app / cache/dev i / var / GSP / projet_etien
w związku z tym, że nie jest to możliwe, nie jest to możliwe.]} r/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command / CacheClearComm
i.php line 77
8 answers
Aby uzyskać dobre i zdecydowane rozwiązanie zobacz sekcję Setting up Permissions
w sekcji Installing and Configuring Symfony
:
Ustawianie uprawnień
Częstym problemem podczas instalacji Symfony jest to, że aplikacja / pamięć podręczna i katalogi app / logs muszą być zapisywalne zarówno przez serwer WWW, jak i użytkownik wiersza poleceń. W systemie UNIX, jeśli użytkownik serwera www jest różni się od użytkownika wiersza poleceń, można spróbować jednego z następujące rozwiązania.
- Użyj tego samego Użytkownika dla CLI i sieci Serwer
W środowiskach programistycznych powszechną praktyką jest używanie tego samego Użytkownika Uniksa dla CLI i serwera www, ponieważ unika on żadnego z uprawnienia te występują podczas tworzenia nowych projektów. Może to być odbywa się poprzez edycję konfiguracji serwera www (np. powszechnie httpd.nie ma problemu.conf dla Apache) i ustawienie jego użytkownika na tak samo jak Twój użytkownik CLI (np. dla Apache, zaktualizuj użytkownika i Grupę wartości).
- za pomocą ACL na systemie, który obsługuje chmod + a
Wiele systemów pozwala na użycie polecenia chmod + A. Spróbuj najpierw, a jeśli pojawi się błąd-spróbuj następnej metody. To używa polecenia do spróbuj określić użytkownika serwera WWW i ustaw go jako HTTPDUSER:
$ 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
- używanie ACL na systemie, który nie obsługuje chmod + a
Niektóre systemy nie obsługują chmod +a, ale obsługują inne narzędzie nazywa się setfacl. Może być konieczne włączenie obsługi ACL na partycji i zainstalować setfacl przed jego użyciem (jak w przypadku Ubuntu). To używa polecenia, aby określić użytkownika serwera sieci web i ustawić go jako HTTPDUSER:
$ 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
Dla Symfony 3 będzie to:
$ 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 var/cache var/logs $ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var/cache var/logs
Jeśli to nie działa, spróbuj dodać opcję-N.
- bez użycia ACL
Jeśli żadna z poprzednich metod nie działa, Zmień umask tak, aby katalogi pamięci podręcznej i dziennika będą zapisywalne grupowo lub zapisywalne na świecie (w zależności czy serwer WWW użytkownik i użytkownik wiersza poleceń znajdują się w ta sama grupa lub nie). Aby to osiągnąć, umieść następującą linię na Początek aplikacji / konsoli, www / aplikacji.php i web / app_dev.Pliki php:
umask(0002); // This will let the permissions be 0775 // or umask(0000); // This will let the permissions be 0777
Zauważ, że używanie ACL jest zalecane, gdy masz dostęp do nich na serwerze ponieważ zmiana umask nie jest bezpieczna dla wątków.
Źródło : Nie udało się zapisać pliku pamięci podręcznej "/var/www/myapp/app/cache/dev/classes.php " podczas czyszczenia pamięci podręcznej
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 10:38:26
Najprawdopodobniej oznacza to, że katalog i/lub podkatalogi nie są zapisywalne. Wielu zapomina o podkatalogach.
Symfony 2
chmod -R 777 app/cache app/logs
Symfony 3 Struktura katalogów
chmod -R 777 var/cache var/logs
Dodatkowe Zasoby
Permissions solution by Symfony (wspomniano wcześniej).
Permissions solution by KPN University - dodatkowo zawiera ekran-cast na instalacji.
Uwaga: Jeśli używasz Struktura katalogów Symfony 3, zastępuje app/cache
i app/logs
przez var/cache
i var/logs
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 19:43:04
Jeśli folder jest już zapisywalny, więc to nie problem.
Możesz również po prostu przejść do /www/projet_etienne/app/cache/
i ręcznie usunąć tam foldery (dev, dev_new, dev_old).
Pamiętaj, aby zapisać kopię folderu gdzieś, aby umieścić z powrotem, jeśli to nie rozwiąże problemu
Wiem, że to nie jest sposób, aby to zrobić, ale to działało dla mnie kilka razy teraz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-03 20:59:42
Prawdopodobnie przerwałeś clearcache w połowie i teraz masz już app / cache / dev_old.
Spróbuj tego (w katalogu głównym projektu, zakładając, że korzystasz ze środowiska Unixy, takiego jak OS X lub Linux):
rm -rf app/cache/dev*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-02 14:57:20
Może zapomniałeś zmienić uprawnienia app / cache app / log
Używam Ubuntu więc
sudo chmod -R 777 app/cache
sudo chmod -R 777 app/logs
sudo setfacl -dR -m u::rwX app/cache app/logs
Mam nadzieję, że to pomoże..Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-03 07:32:29
Wykonałem:
ps aux | grep apache
I mam coś takiego:
root 28147 0.0 5.4 326336 27024 ? Ss 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28150 0.0 1.3 326368 6852 ? S 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28151 0.0 4.4 329016 22124 ? S 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28152 0.1 6.0 331252 30092 ? S 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28153 0.0 1.3 326368 6852 ? S 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28154 0.0 1.3 326368 6852 ? S 20:06 0:00 /usr/sbin/apache2 -k start
www-data 28157 0.0 1.3 326368 6852 ? S 20:06 0:00 /usr/sbin/apache2 -k start
user 28297 0.0 0.1 15736 924 pts/4 S+ 20:12 0:00 grep --color=auto apache
Więc moim Użytkownikiem bez dostępu okazał się www-data
więc wykonałem polecenia:
sudo chown -R www-data app/cache
sudo chown -R www-data app/logs
I rozwiązał błędy dostępu.
Nigdy przenigdy nie używaj unsecure 777 do rozwiązywania konkretnych prób dostępu:
sudo chmod -R 777 app/cache
sudo chmod -R 777 app/logs
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 17:20:35
Przenoszę cały katalog z mojej instalacji Windows na serwer produkcyjny unix i mam ten sam błąd. Aby to naprawić, po prostu uruchomiłem te dwie linie w Uniksie i wszystko zaczęło działać dobrze
rm -rf app/cache/*
rm -rf app/logs/*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-10 05:48:13
If symfony version less than 2.8
sudo chmod -R 777 app/cache/*
If symfony version great than or equal 3.0
sudo chmod -R 777 var/cache/*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 14:15:30