2014-03-26 10 views
6

Zuerst nahm ich dich, um mein Englisch zu entschuldigen. Ich habe eine Website mit Symfony gemacht, die lokal gut funktioniert. (Dev und Prod). Aber sobald ich online die dev-Version funktioniert, aber die prod-Version zeigt eine leere Seite. Lighttpd gibt mir keinen Fehler. PHP gibt mir keinen Fehler. Cache und Protokoll sind beschreibbar.Symfony 2: dev zu pro = leere Seite

Ich verstehe nichts.

+0

Können Sie HTT überprüfen P Antwort (in Chrome Developer Toolbar), wenn Sie eine leere Seite erhalten? – mesutozer

+1

Scheint so, als müssten Sie nur Ihren Cache 'php app/console cache löschen: clear --env = prod' oder einfach alles manuell im' app/cache/'Ordner entfernen. – Brewal

+0

500 Interner Server Fehler T_T – user4032720

Antwort

2

OK, dies ist höchst unerwünschte Situation, da Sie Bugs eins nach dem anderen quetschen müssen. Es könnte so gutartig wie fehlende PHP-Modul oder einige wichtige httpd Fehlkonfiguration sein.

einige Schritte, die zu diesem Thema etwas Licht sollte:

  1. Feuer auf die Terminal (Sie ssh Zugang zu tun haben, nicht wahr?)
  2. Protokolle überprüfen (beide httpd und symfony)

httpd log:

tail -f /var/log/httpd/error_log 

... und aktualisieren Sie Ihre Seite

Symfony

tail -f /path-to-your-symfony-app/app/logs/prod.log 

... wieder, aktualisieren Sie Ihre Seite

In Ihrem Kommentar, Sie sagten, Sie HTTP500 Fehler aufgetreten. Ist das Apache oder Symfony HTTP500?

Wenn Sie nicht happen ssh Zugriff laden Sie Ihre app_dev.php und führen Sie es direkt. Achten Sie darauf, Ihre IP-Adresse auf der Liste der erlaubten hinzufügen (innerhalb der Datei)

+0

Ich benutze SSH-Zugriff. Ich schaute auf die Protokolldatei lighttpd und nichts ändert sich, wenn ich die Seite neu lade. Ich habe kein dev.log aber nur ein prod.log für symfony. – user4032720

+0

Und wie wäre es 'access_log' von Ihrem Lighttpd? Tut mir leid, ich bin ein wenig unbekannt über Log-Namen in 'lighttp' ... –

+0

Mein Login prod: [Log-Datei] (http://pastebin.com/pvL7f1si) und mein Log-in dev: [Log-Datei] (http://pastebin.com/btFwiTqP) – user4032720

0

ich den Einsatz tat, wie in diesen geführten official docs

In meinem Fall das Update von symfony vorher war nicht BC mit einem alten Bündel bereitstellen, also der clear: cache --env = prod gab einen Fehler. Also, was ich tat, war, um manuell den prod Cache zu löschen und dann klar: Cache mit dem prod Umgebung und es funktionierte: so wieder aufnehmen:

#rm -rf app/cache/prod/* #removes only production cache 
rm -rf app/cache/ #removes prod and any other stage cache 
php app/console cache:clear --env=prod 
1

Ändern Sie Ihre Berechtigung für Cache und Protokollordner in 777.

chmod 777 cache/ log/ -R 
php symfony cc 
+2

Es war nur chmodding 'app/cache /' und 'app/logs /' für mich –

1

Als documentation sagt:

Anstelle der Begrüßungsseite, können Sie eine leere Seite oder eine Fehlerseite angezeigt. Dies wird durch eine Fehlkonfiguration der Verzeichnisberechtigungen verursacht. Je nach Betriebssystem gibt es mehrere mögliche Lösungen. Sie werden alle im Abschnitt Einrichten von Berechtigungen erläutert.

Und dann sollten Sie these steps folgen:

  1. rm -rf app/cache/*
  2. rm -rf app/logs/*
  3. HTTPDUSER=' ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1'
  4. sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX app/cache app/logs
  5. sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX app/cache app/logs