symfony2 - jak przełączyć się z " dev "na"prod"?

Ściągnąłem symfony2 i jestem w stanie uruchomić go zaczynając od app_dev.php.

Ale kiedy zaczynam od app.php, potem dostaję stronę błędu 404.

App.php jest oczywiście tam i jest wykonywane.

Błąd występuje najwyraźniej gdzieś po ostatniej linijce kodu w aplikacji.php:

$kernel->handle(Request::createFromGlobals())->send();

Myślę, że gdzieś jest przełącznik, który muszę skonfigurować.

EDIT :

Zgodnie z sugestią GeLo dodałem routing dla wersji produkcyjnej do app / config/routing.yml.

_welcome:
    resource: "@AcmeDemoBundle/Resources/config/routing.yml"
    prefix:     /

Utworzyłem src / Acme / DemoBundle/Resources/config / routing.yml o treści:

bla:
    pattern: /
    defaults: {_controller:AcmeDemoBundle:Demo:index}

W DemoController::indexAction() umieściłem die(__FILE__);

Nic; wciąż dostaję 404 z app.php !?

EDIT regarding the answer:

./app/console --env=prod cache:clear
Udało się. zwróć uwagę na parametr env.
 56
Author: j0k, 2011-07-22

6 answers

Domyślnie Symfony 2 jest dostarczany z pakietem demo, który jest dostępny tylko ze środowiska programistycznego.

Środowisko produkcyjne nie zawiera żadnej trasy, więc to normalne, że dostajesz stronę błędu 404.

EDIT:

Czy jesteś pewien, że Twój Pakiet jest włączony w AppKernel?php ?

Jeśli tak, Wyczyść pamięć podręczną za pomocą następującego polecenia: ./app/console cache:clear

Sprawdź, czy trasa jest włączona za pomocą następującego polecenia: ./app/console router:debug

 41
Author: egeloen,
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
2013-08-30 20:05:39

Zamiast tego Zmień właściciela.
sudo chown www-data:www-data -R app/cache
sudo chown www-data:www-data -R app/logs

To pozwala przeglądarce posiadać foldery. składnia jest:
chown <USER>:<GROUP> <SWITCH> <DIRECTORY>

 8
Author: topaz1008,
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-12-09 23:09:58

Chciałem tylko zintegrować kilka porad na ten problem, ponieważ miałem do czynienia z nową instalacją fresh Symfony2.

Jako nowa instalacja zwykle dostajesz AppBundle pod /src / AppBundle razem z AcmeDemoBundle pod / src/Acme / DemoBundle

Jeśli chcesz uruchomić AcmeDemoBundle na app_dev i, w międzyczasie, mieć aplikację (np.php (i uniknąć 404 ) można też zrobić coś takiego że:

W /app/config/routing_dev.YML skomentuj następujące wiersze (jeśli je masz):

_main:
    resource: routing.yml

W / app/config / routing.yml Dodaj nową trasę ( jeśli nie masz)

index:
    pattern:  /
    defaults: { _controller: AppBundle:Default:index }

Następnie Opróżnij cache, jak już zalecali inni i przetestuj aplikację na


1) http: / / your_application_path / web /


2) http: / / your_application_path / web / app_dev.php

Jeśli wszystko jest w porządku na pierwszym należy dostać biały strona z ciągiem " Strona główna." ( aby edytować ten jeden wejść w / app / Resources/views/default / index.html.gałązka... Układ dla tego to podstawa.html.gałązka), a na drugim powinieneś dostać DemoBundle dostarczone przez Symfony2.

Mam nadzieję, że to pomoże!
 5
Author: Fabrizio Sabato,
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-06-15 08:34:52

Naprawiłem to po prostu pozwalając na konto serwera www (tj. 'master-chef' właścicielem katalogu/Symfony2/app/cache / prod. Polecenie jak poniżej:

$sudo chown master-chef -R /var/www/Symfony2/app/cache/prod
 1
Author: hackintos,
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-07-08 07:03:57

W Twoim " web/app.php " plik

 $kernel = new AppKernel('prod', false);

Zmień wartość na "true".

 $kernel = new AppKernel('prod', true);

Teraz możesz załadować aplikację w trybie produkcyjnym.

 0
Author: ,
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-08-15 04:52:39

Twój problem jest związany z cache Symfony2. Miałem te same problemy. Spróbuj tego:

  • sudo php app/console cache:clear --env=prod --no-debug
  • sudo chmod 777 -R ../sf2/ (sf2) jest głównym katalogiem mojego proyect
Jesteś skończony.
 -11
Author: Yuri,
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-07-08 07:03:41