系统升级后,PHP 无法在 Apache2 中运行

Jiv*_*ngs 14 upgrade 10.04 php 9.10 apache2

最近将我的系统从 Karmic 升级到 Lucid。我相信这涉及更新 Apache 和 PHP。

现在我的服务器无法处理 PHP 文件,对它们的任何导航都会触发下载而不是解析。

PHP 模块仍然加载在 Apache mods-enabled AddType application/x-httpd-php .php中,我的 httpd.conf 中也有。

Apache 访问或错误日志中没有有意义的消息,所以我很难过。

任何帮助,将不胜感激。谢谢。

Lek*_*eyn 17

/var/log/apache2/error.log 如果 PHP 加载成功,应该显示如下一行:

[2011 年 8 月 30 日星期二 12:53:36] [通知] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.9 配置 Suhosin-Patch -- 恢复正常操作

注意日期,如果是 2009 年的日期,则说明您配置错误。

AddType 没用,你需要使用:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

另请参阅php.net 上的 Apache 2.x 安装说明。

您不需要手动添加,该软件包libapache2-mod-php5安装/etc/apache2/mods-available/php5.conf包含:

<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>
Run Code Online (Sandbox Code Playgroud)

由于它是一个 conffile,它可能没有与升级一起安装。要解决该问题,请清除它,然后再次安装:

sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5
Run Code Online (Sandbox Code Playgroud)

要启用 PHP,您必须运行:

sudo a2enmod php5
Run Code Online (Sandbox Code Playgroud)

在以下之后重新启动网络服务器:

sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

其他要做的事情:

  • 检查/etc/apache2.
  • 您是否从源代码构建了 Apache?
  • 运行sudo apache2ctl configtest以检查您的配置是否存在语法错误
  • 打开http://localhost/server-info以检查加载的配置和模块。该status模块必须加载此。如果您正在运行远程服务器,则需要将自己添加到Allow from列表中,/etc/apache2/mods-enabled/status.conf然后重新启动服务器