我们使用Debian 6.0.3和Apache 2运行一个networking服务器,最近我们从Debian 5升级到6.从那时起,用户目录(使用mod_userdir)中的php脚本停止工作,它们被下载而不是被执行。
还有一个网站在用户目录之外使用PHP,并且一个继续工作正常,所以PHP似乎一般在服务器上工作。 我testing了几个PHP文件,其中一个简单的phpinfo文件在主站点上工作正常,但只是在将其复制到一个用户目录时才下载。
PHP文件和包含它们的目录对每个人都是可执行的。 Apache php5.conf中默认禁用用户目录中的PHP的选项已被注释掉,所以php5.ini如下所示:
<IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. #<IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_value engine Off # </Directory> #</IfModule> </IfModule>
改变这个之后我们重启了Apache。 我现在想出了什么问题,我不知道如何才能真正确定哪些问题阻止这些PHP文件被执行。 关于如何解决这个问题的任何想法?
更新:
奇怪的是,PHP似乎在用户目录的子文件夹中正常工作,所以如果我从/home/user/public_html/到/home/user/public_html/test/复制一个PHP文件,它突然工作。
对于初学者,请尝试
egrep -ir "(php_admin_value|mod_userdir|public_html)" /etc/apache2
并查看用户目录的PHP可能被禁用的所有可能的位置。 改变需要的地方。 重新启动Apache,享受。
我遇到了同样的问题,并通过安装解决它
apt-get install libapache2-mod-php5