2012-02-24 13 views
6

Mam trasy takie jak: /,/login,/register, itp., Które działają dobrze w środowisku dev.symfony 2 tras nie znaleziono w produkcji

Na początku mam błąd 404, gdy próbował uzyskać dostępu do witryny za pośrednictwem app.php zamiast app_dev.php

Potem następuje this advice i oczyścić pamięć podręczną.

Ale teraz otrzymuję pusty ekran próbujący uzyskać dostęp do dowolnej zarejestrowanej trasy, na przykład app.php/lub app.php/login.

znalazłem ten post w prod.log:

[2012-02-24 11:27:05] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /login" (uncaught exception) at /home/renat/www/ptracker/app/cache/prod/classes.php line 4564 [] [] 

Oto moja routing.yml:

PtrackerTasksBundle: 
resource: "@PtrackerTasksBundle/Resources/config/routing.yml" 
prefix: /

PtrackerAuthBundle: 
resource: "@PtrackerAuthBundle/Resources/config/routing.yml" 
prefix: /

routing.yml w AuthBundle:

homepage: 
pattern:/
defaults: { _controller: PtrackerAuthBundle:Default:index } 

register: 
pattern: /register 
defaults: { _controller: PtrackerAuthBundle:Default:register } 

login: 
pattern: /login 
defaults: { _controller: PtrackerAuthBundle:Default:login } 

activate: 
pattern: /activate/{username}/{salt} 
defaults: { _controller: PtrackerAuthBundle:Default:activate } 

login_check: 
pattern: /login_check 

routing.yml w TasksBundle:

tasks: 
pattern: /tasks 
defaults: { _controller: PtrackerTasksBundle:Default:index } 

tasks_add: 
pattern: /tasks/add 
defaults: { _controller: PtrackerTasksBundle:Default:add } 

tasks_view: 
pattern: /tasks/view/{id} 
defaults: { _controller: PtrackerTasksBundle:Default:view, id : null } 

tasks_change_responsible: 
pattern: /tasks/change_responsible/{id}/{responsible} 
defaults: { _controller: PtrackerTasksBundle:Default:change_responsible, _format: json } 

tasks_change_status: 
pattern: /tasks/change_status/{id}/{status} 
defaults: { _controller: PtrackerTasksBundle:Default:change_status, _format: json }  

tasks_edit: 
pattern: /tasks/edit/{id} 
defaults: { _controller: PtrackerTasksBundle:Default:edit } 

Czego mi brakowało lub co robię źle?

+1

Co 'php routera app/console: debugowania -e = prod' wyjście? – meze

+0

[RuntimeException] Nie można pisać w katalogu pamięci podręcznej (/ home/renat/www/ptracker/app/cache/prod) Teraz działa z 777 prawami :) – mennanov

Odpowiedz

10

Najpierw przejrzyj na liście konsoli listę tras (polecenie router:debug). Jeśli znalazłeś swoje routery, a następnie pewne problemy z wyczyszczeniem pamięci podręcznej w moim przypadku, ręcznie usuwam folder app/cache i to działa.

Do ustawiania środowisku produkcyjnym bez pamięci podręcznej, w pliku app.php zmian do

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

Problem dotyczył praw nieprawidłowego folderu. Po ustawieniu go na 777 działało dobrze – mennanov

+0

drugi parametr służy do włączania debugowania, w tym przypadku dla środowiska prod. [Jak włączyć debugowanie i wyłączyć buforowanie] (http://symfony.com/doc/current/cookbook/debugging.html) –

7

wyczyść cache na środowisko prod.

php app/console cache:clear --env=prod --no-debug 
0
app/console cache:clear 

or 

active mod_rewrite in 

activate the directory: nano /etc/apache2/apache2.conf 

AllowOverride None 
<Directory "/var/www/html"> 
    AllowOverride None 
</Directory> 
for 
<Directory "/var/www/html"> 
    AllowOverride All 
</Directory> 

http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/