我在 Debian Squeeze 上运行的 Apache 2.2.16 配置遇到了问题。问题是它完全停止提供 PHP5 脚本。当我尝试使用 Google Chrome 访问网站时,它会下载一个名为“download”的文件,其中包含脚本的内容。这当然不是一件好事。它确实可以完美地提供常见的 html 文件...
我已经研究这个问题有一段时间了,在谷歌搜索和故障排除之后,我觉得是时候向你们请教了。以下是我得到的信息:
- php5 和 libapache2-mod-php5 包已安装
- /etc/apache2/mods-available 包含 php5.load 和 php5.conf,它们是从 mods-enabled 目录符号链接的
- /etc/php5/ 目录自安装以来一直未发生改变。
以下是 /etc/apache2/mods-available/php.load 的内容:
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
和 /etc/apache2/mods-available/php.conf:
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
我遗漏了什么?这是一台修改了虚拟主机等的服务器,所以我可能更改了一些导致此问题的设置,但到目前为止,简单的清除和重新安装不是一个选择,因为配置相当广泛。任何帮助都很好。谢谢。
编辑:我正在尝试访问 /var/www/ 下的虚拟 apache 主机中运行的脚本。这些脚本的配置如下:
<VirtualHost 1.2.3.4:80>
ServerAdmin [email protected]
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain.com/public_html/
ErrorLog /var/www/domain.com/logs/error.log
CustomLog /var/www/domain.com/logs/access.log combined
Options -indexes
</VirtualHost>
答案1
您可以尝试删除整个php_admin_value engine Off
设置,也许您意外地匹配了脚本。是否FilesMatch
进行不区分大小写的匹配?也许检查正则表达式的语法?
正在如何php.conf
加载?请仔细检查是否正在正确加载。
答案2
您想从哪里访问 php 脚本?我猜是在 /home/*/public_html 的某个地方?
我相信 php_admin_value engine Off 将关闭 php.ini 中的引擎值。并且根据 php.ini 注释,它应该打开:
; Enable the PHP scripting language engine under Apache.
engine = On
如果将 php_admin_value engine Off 更改为 php_admin_value engine On,会发生什么情况