繁体   English   中英

Zend Framework - 500内部服务器错误

[英]Zend Framework - 500 Internal Server Error

今天我使用Zend Framework创建了我的第一个项目,但是当我尝试连接到我的项目时,我只看到“500 Internal Server Error”。 我在httpd.conf文件中添加了一些新行:

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>

那是我的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

我为这个问题阅读了更多主题,但目前问题尚未解决。

那是我的error.log文件(来自服务器):

[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

感谢您发布错误日志。

从它的外观来看,你没有加载mod_rewrite

找到您的httpd.conf文件并找到该行:

#LoadModule rewrite_module modules/mod_rewrite.so

从行的开头删除#符号。

接下来,向httpd.conf中添加一个如下所示的新部分:

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

AllowOverride指令很重要。 默认情况下,除非允许,否则不处理.htaccess文件。 此行允许该命名目录中的.htaccess文件。

进行这些更改后,重新启动Apache,然后再次尝试加载ZF页面。

首先,更好的调试。

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

到你的虚拟主机。 重启apache并重新加载页面。 将在指定的路径中创建文件。 将会有一个确切的错误消息,它将帮助您进一步调试。

我刚刚遇到了完全相同的问题,而drew010的解决方案确实解决了它!

但是,似乎Apache配置结构发生了变化,因此启用缺少模块的方法略有不同:

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

这证实你有正确的东西:

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

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM