2012-08-07 1 views
7

Oggi creo il mio primo progetto con Zend Framework ma quando provo a connettermi al mio progetto vedo solo "500 Internal Server Error". Aggiungo alcune nuove righe in file httpd.conf:Zend Framework - Errore interno server 500

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> 

E questo è il mio file .htaccess:

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 

leggo più argomenti per questo problema, ma per ora problema non è risolto.

Questo è il mio file error.log (dal 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

Che cosa dice il file error.log del server? Aiuta quasi sempre. – FloydThreepwood

+0

Nel file php.ini aggiungi le seguenti righe: error_reporting = E_ALL; display_errors = 1. Dovrebbe dirti l'errore invece di darti un errore interno del server. Assicurati di riavviare il server affinché le modifiche abbiano effetto. – Johnnyoh

risposta

16

Grazie per aver pubblicato il log degli errori.

Dal suo aspetto, non è stato caricato mod_rewrite.

trovare il file httpd.conf e individuare la riga:

#LoadModule rewrite_module modules/mod_rewrite.so 

Rimuovere il segno # dall'inizio della linea.

Avanti, aggiungere una nuova sezione per httpd.conf che assomiglia a questo:

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

La AllowOverride direttiva è importante. Per impostazione predefinita, i file .htaccess non vengono elaborati se non consentito. Questa riga consente i file .htaccess in quella directory denominata.

Dopo aver apportato tali modifiche, riavviare Apache e provare a caricare nuovamente la pagina ZF.

+0

Grazie mille avvio la mia pagina Benvenuto in Zend Framework! Questa è la pagina principale del tuo progetto. –

+0

Suoni del genere si sono occupati di esso, per assicurarsi che il .htaccess funzioni, vedere se è possibile accedere a "tuo sito".com/index/index' per assicurarsi che instradi correttamente il controller e i nomi delle azioni sul front controller. Se funziona, le regole di riscrittura sono state impostate correttamente. – drew010

+0

Sì, my_ip/index/index work –

3

Prima di tutto, un debugging migliore. Aggiungi

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

al tuo virtualhost. Riavvia apache e ricarica la tua pagina. I file verranno creati nel percorso specificato. Ci sarà un messaggio di errore esatto che ti aiuterà a eseguire il debug di più.

0

Ho appena avuto lo stesso identico problema e la soluzione di drew010 ha risolto il problema!

Tuttavia, sembra Apache struttura config cambiato, in modo che il metodo per attivare il modulo manca è leggermente diversa:

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

Ciò conferma di avere la stoffa giusta intenzione:

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

Cheers!