编辑:我决定删除我的 apache 和 php 安装并从头开始。现在一切都正常了,不知道为什么以前不行。我可能已经设置了 30 个不同的 LAMP 类型服务器,但以前从未遇到过这种情况,我想我只能把这次归结为疯狂。
原问题如下:
问候,
PHP 文件无法在我的 Web 服务器上正确执行。我有一个测试文件,如下所示:
<html>
<head>
<title>Testing PHP</title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>
以下是我安装的 PHP 和 apache 包:
$ dpkg -l | grep php ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2 ii php 配置 1.10.11-1 ii php-pear 5.2.6.dfsg.1-3ubuntu4.2 ii php5 5.2.6.dfsg.1-3ubuntu4.2 ii php5-cgi 5.2.6.dfsg.1-3ubuntu4.2 ii php5-cli 5.2.6.dfsg.1-3ubuntu4.2 ii php5-common 5.2.6.dfsg.1-3ubuntu4.2 ii php5-mysql 5.2.6.dfsg.1-3ubuntu4.2 $ dpkg -l | grep apache ii apache2-mpm-prefork 2.2.11-2ubuntu2.3 ii apache2-utils 2.2.11-2ubuntu2.3 ii apache2.2-通用 2.2.11-2ubuntu2.3 ii libapache2-mod-auth-mysql 4.3.9-11 ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2
以下是我的 php 相关的配置行:
$ grep -n php /etc/apache2/apache2.conf /etc/apache2/mods-enabled/php5.* /etc/apache2/httpd.conf /etc/apache2/mods-enabled/php5.conf:1: <IfModule mod_php5.c> /etc/apache2/mods-enabled/php5.conf:2: 添加类型应用程序/x-httpd-php .php .phtml .php3 /etc/apache2/mods-enabled/php5.conf:3: 添加类型应用程序/x-httpd-php-source.phps /etc/apache2/mods-enabled/php5.load:1: 加载模块 php5_module /usr/lib/apache2/modules/libphp5.so
如您所见,php5 模块已加载。我可以确认这一点,因为 a2enmod 表明它已加载。
目前,尝试在浏览器中加载 PHP 文件只会将其显示为原始文本。
奇怪的是,在尝试修复它时,我发现如果我在 httpd.conf 的底部添加一行类似“AddType application/x-httpd-php .php .phtml .php3”的行,它就会突然开始要求我下载那些 php 文件。这很奇怪,因为这样的行与 php5.conf 模块文件中的行相同。
显然,这两种行为都不是我们所期望的。
而且,是的,apache2 甚至服务器本身都已重启多次。Apache 可以毫无问题地提供常规 HTML 页面。
有任何想法吗?
答案1
当我对我的配置文件执行相同的 grep 时,我得到了一行你没有的东西:
/etc/apache2/mods-enabled/dir.conf:3: 目录索引 index.html index.cgi index.pl index.php index.xhtml index.htm
确保此行/etc/php5/apache2/php.ini
按以下方式设置:
; 启用 Apache 下的 PHP 脚本语言引擎。engine
= On
如果您更改它,请重新启动 Apache:
sudo apache2ctl restart
答案2
您的 php.ini 文件中的选项设置为什么short_open_tag
?我经常忘记打开它 - 所以我了解您的感受。一些软件包维护者将此选项设置为“0”false。请参阅http://www.php.net/manual/en/ini.core.php
答案3
仅此命令可能有帮助:
sudo apache2ctl restart
我曾经处于类似的情况并且它对我来说确实如此。