2017-02-15 4 views
0

Ich benutze Smyfony 3.2.3 und wechselte von PHP integrierten Webserver zu Apache (http://symfony.com/doc/current/setup/web_server_configuration.html, Apache 2.4.18). Es funktioniert für die Root-Symfony-Seite (http://domain.com/, ohne Symfony-Routing), aber wenn ich einen Controller mit einem Routing (zB @Route ("/ Entwicklung", Name = "Entwicklung")), habe ich einen Apache 500 Interner Serverfehler. Wenn Sie diese Seite (/ Entwicklung) mit PHP-integriertem Webserver anfordern, funktioniert es gut. Im Apache-Log bekomme ich keine Fehlermeldung. PHP "display_error" ist an, "error_reporting" ist "E_ALL" und es gibt keine Meldung in der php "error_log" Datei.Symfony 3 Apache 500 Interner Server Fehler

Jede Idee, was könnte das Problem sein?

Wäre nett, etwas Hilfe zu erhalten!

Danke!

+0

Der Fehler 500 ist ein allgemeiner Fehler. Höchstwahrscheinlich gibt es ein anderes Problem und möglicherweise ein Zweigproblem. Können Sie die DEV-URL wie folgt verwenden: 'http: // domain.com/app_dev.php'. Dann können Sie sehen, was der Fehler ist. –

+0

Wenn ich "http://domain.com/app_dev.php/development" verwende, funktioniert es ohne Fehler. Beim Aufruf von "http://domain.com/app.php/development" wurde ich auf "http://domain.com/development" umgeleitet und dort ist wieder der Fehler 500. Ich habe dies in Apache config: deaktiviert " Optionen -MultiViews RewriteEngine On RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^(. *) $ app.php [QSA, L] “. Hat aber nichts geändert. Ist es möglich, von app.php als Standard zu app_dev.php zu wechseln? – user2625247

+0

Können Sie den Inhalt Ihrer Protokolle überprüfen? Sie befinden sich in 'var/logs' und sollten' dev.log' und 'prod.log' enthalten. Sie können die Dateien zuerst löschen und dann Ihren Test durchführen, bis Sie die 500 Fehler erhalten und diese Dateien überprüfen. Führen Sie auch 'php bin/symfony_requirements' von der Befehlszeile aus. –

Antwort

7

Ihr Problem ist, dass Ihr Cache in der Produktion nicht gelöscht wurde. Führen Sie diesen Befehl:

php bin/console cache:clear --env=prod 

Dann laufen:

php bin/console debug:router -e=prod 

die alle Ihre Produktionswege zeigen. Durch die Art und Weise läuft:

php bin/console 

zeigt Ihnen alle Befehle, die Sie von der Kommandozeile ausgeführt werden kann, wenn man sich etwas anderes suchen.

Hoffe, das hilft.

+0

Danke! 'php bin/console cache: löschen --env = prod' löste das Problem! Das ist großartig! Wie oft muss ich den Cache leeren? Jedes Mal, wenn ich neue Routen hinzufüge? Muss ich das nur für prod Umgebung oder auch für Entwickler tun? – user2625247

+0

Hinweis: 'php bin/console debug: router -e = prod' ist gleich' php bin/console debug: router --env = prod'. Sie sollten auf den Pfeil neben meiner Antwort klicken, um zu zeigen, dass sie korrekt ist. –

+0

Wäre nett, wenn du meine Fragen endlich beantworten könntest. Vielen Dank! Wie oft muss ich den Cache leeren? Jedes Mal, wenn ich neue Routen hinzufüge? Muss ich das nur für prod Umgebung oder auch für Entwickler tun? – user2625247

0

das gleiche Problem, das ich hatte und ich reparierte es das gleiche, dass einige Leute hier sagen. Geben Sie dem var-Ordner die volle Erlaubnis. ENDLICH!

+0

richtige Antwort ... – Aaron

Verwandte Themen