PHP 未在 apache2 中解析,php 模块已安装并启用

PHP 未在 apache2 中解析,php 模块已安装并启用

编辑:我决定删除我的 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

我曾经处于类似的情况并且它对我来说确实如此。

相关内容