下载PHP文件,而不是在Apache的UserDir中执行

我们使用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