2012-08-07 10 views
7

Heute erstelle ich mein erstes Projekt mit Zend Framework, aber wenn ich versuche, eine Verbindung zu meinem Projekt herzustellen, sehe ich nur "500 Internal Server Error". Ich füge ein paar neue Zeilen in httpd.conf:Zend Framework - 500 Interner Server Fehler

NameVirtualHost *:80 
<VirtualHost *:80> 
DocumentRoot C:\AppServ\www\data1\public 
ServerName my_ip 
</VirtualHost> 

NameVirtualHost *:80 
<VirtualHost *:80> 
DocumentRoot C:\AppServ\www\data1\public 
ServerName http://my_ip 
</VirtualHost> 

Und das ist meine .htaccess-Datei:

RewriteEngine On 
#RewriteBase data1/public/ 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
RewriteRule !\.(js|ico|gif|jpg|png|css|swf|html|pps)$ index.php [NC,L] 

order allow,deny 
allow from all 

ich mehr Themen für dieses Problem lesen, aber für jetzt Problem gelöst ist nicht.

Das ist meine error.log-Datei ist (vom Server):

[Wed Aug 08 01:46:02 2012] [warn] NameVirtualHost *:80 has no VirtualHosts 
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php5  \\ext\\php_exif.dll' - \xd3\xea\xe0\xe7\xe0\xed\xe0\xf2\xe0 \xef\xf0\xee\xf6\xe5\xe4 \xf3\xf0\xe0 \xed\xe5 \xe5 \xed\xe0\xec\xe5\xf0\xe5\xed\xe0.\r\n in Unknown on line 0 
[Wed Aug 08 01:46:02 2012] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations 
[Wed Aug 08 01:46:02 2012] [notice] Server built: Jan 18 2008 00:37:19 
[Wed Aug 08 01:46:02 2012] [notice] Parent: Created child process 2392 
[Wed Aug 08 01:46:02 2012] [warn] NameVirtualHost *:80 has no VirtualHosts 
[Wed Aug 08 01:46:02 2012] [warn] NameVirtualHost *:80 has no VirtualHosts 
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php5\\ext\\php_exif.dll' - \xd3\xea\xe0\xe7\xe0\xed\xe0\xf2\xe0 \xef\xf0\xee\xf6\xe5\xe4\xf3\xf0\xe0 \xed\xe5 \xe5 \xed\xe0\xec\xe5\xf0\xe5\xed\xe0.\r\n in Unknown on line 0 
[Wed Aug 08 01:46:02 2012] [notice] Child 2392: Child process is running 
[Wed Aug 08 01:46:02 2012] [notice] Child 2392: Acquired the start mutex. 
[Wed Aug 08 01:46:02 2012] [notice] Child 2392: Starting 64 worker threads. 
[Wed Aug 08 01:46:02 2012] [notice] Child 2392: Starting thread to listen on port 80. 
[Wed Aug 08 01:46:15 2012] [alert] [client 46.40.124.225] C:/AppServ/www/data1/public/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration 
+0

Was sagt Ihre Server error.log Datei? Es hilft fast immer. – FloydThreepwood

+0

Fügen Sie in Ihrer php.ini-Datei die folgenden Zeilen hinzu: error_reporting = E_ALL; display_errors = 1. Es sollte Ihnen den Fehler mitteilen, anstatt Ihnen einen internen Serverfehler zu geben. Stellen Sie sicher, dass Sie den Server neu starten, damit die Änderungen wirksam werden. – Johnnyoh

Antwort

16

Vielen Dank für die Buchung des Fehlerprotokolls.

Vom Aussehen her, haben Sie nicht mod_rewrite geladen.

Finden Sie Ihre httpd.conf Datei und suchen Sie die Zeile:

#LoadModule rewrite_module modules/mod_rewrite.so 

Entfernen Sie die # Zeichen vom Anfang der Zeile.

nächstes einen neuen Abschnitt zu httpd.conf hinzufügen, die wie folgt aussieht:

<Directory "C:/AppServ/www/data1/public"> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 

Die AllowOverride Richtlinie wichtig ist. Standardmäßig werden .htaccess Dateien nur verarbeitet, wenn sie zulässig sind. Diese Zeile erlaubt .htaccess Dateien in diesem benannten Verzeichnis.

Nachdem Sie diese Änderungen vorgenommen haben, starten Sie Apache neu und laden Sie dann Ihre ZF-Seite erneut.

+0

Vielen Dank Ich beginne meine Seite Willkommen im Zend Framework! Dies ist die Hauptseite Ihres Projekts. –

+0

Hört sich so an, dass es funktioniert, um sicherzustellen, dass die .htaccess-Funktion funktioniert. Sehen Sie, ob Sie auf Ihre eigene Website zugreifen können.com/index/index', um sicherzustellen, dass die Controller- und Aktionsnamen erfolgreich an den Frontcontroller weitergeleitet werden. Wenn das funktioniert, sind Ihre Umschreibungsregeln korrekt eingerichtet. – drew010

+0

Ja, my_ip/index/index Arbeit –

3

Zunächst einmal eine bessere Fehlersuche. Fügen Sie dem virtuellen Host

ErrorLog "PATH_TO/zfapp-error_log" 
    CustomLog "PATH_TP/zfapp-access_log" combined 

hinzu. Starten Sie Apache neu und laden Sie Ihre Seite neu. Die Dateien werden im angegebenen Pfad erstellt. Es wird eine genaue Fehlermeldung geben, die Ihnen hilft, weiter zu debuggen.

0

Ich hatte gerade genau das gleiche Problem und die Lösung von draw010 hat es tatsächlich behoben!

Allerdings scheint es, Apache-Konfigurationsstruktur geändert, so dass das Verfahren das fehlende Modul zu ermöglichen, ist etwas anders:

$ cd /etc/apache2/mods-enabled 
$ sudo ln -s ../mods-available/rewrite.load ./rewrite.load 

Dies bestätigt Sie das Zeug haben, gehen:

$ cd /etc/apache2/mods-enabled 
$ cat ./rewrite.load 
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so 

Prost!

Verwandte Themen