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:

[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

Proszę o pomoc!
 54
Author: Trix, 2012-11-03

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.

  1. 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).

  1. 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
  1. 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.

  1. 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.

Http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup

Ź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

 90
Author: zizoujab,
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.

 21
Author: timofey,
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.

 17
Author: Mats Rietdijk,
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*

 11
Author: Boy Baukema,
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..
 8
Author: rai,
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
 1
Author: Stan Fad,
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/*
 1
Author: Rodol Velasco,
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/*
 0
Author: rapaelec,
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