Linux Apache 不执行 php 文件:解决方案
如果您在 Linux 系统上运行 Apache Web 服务器并发现 PHP 文件没有被执行,有一些潜在的解决方案可以帮助解决此问题。 PHP 是 Web 服务器设置的常见组件,也是世界上最流行的内容管理系统 WordPress 使用的编程语言。它通常与 Apache 和 MySQL 一起安装,称为 LAMP(Linux、Apache、MySQL、PHP)。
在本教程中,我们将展示如何使 Apache 在 Linux 上执行 PHP 文件。首先,我们将验证 PHP 是否已成功安装在您的系统上,然后确保已启用 Apache 识别 PHP 格式所需的模块。请跟随我们下面的步骤开始故障排除过程并让 PHP 与 Apache 一起使用。
在本教程中您将学习:
如何在 Debian 和基于 RHEL 的发行版上安装 PHP
如何检查 PHP 信息是否安装成功
如何编辑 apache2.conf 文件
如何启用必要的 PHP Apache 模块
如何重启Apache系统服务
Linux Apache 不执行 php 文件:解决方案
以下步骤通过多种故障排除方法来找出 Apache 不执行 PHP 文件的问题所在。在每个步骤之后继续检查,看看您的 Apache 配置现在是否正在执行 PHP 文件。
在系统上安装 Apache 不一定会安装 PHP。确保 PHP 已安装并更新到最新版本。以下是 Debian Linux 和 Ubuntu Linux 上的操作方法:
$ sudo apt update $ sudo apt install php
以下是如何在基于 RHEL 的发行版(例如 Fedora Linux 和 CentOS Linux)上安装 PHP:
$ sudo dnf install php
通过打开交互式 PHP 提示符并使用 phpinfo(); 命令来验证您的安装配置是否正确。成功执行通常足以表明,但您也可以查看输出是否有任何错误。
$ php -a Interactive shell php > phpinfo();
如果 PHP 安装成功,请确保您已禁用
mpm_event
Apache 模块并启用mpm_prefork
和php8.1
模块。$ sudo a2dismod mpm_event $ sudo a2enmod mpm_prefork $ sudo a2enmod php8.1
根据您的配置,您可能还需要执行:
$ sudo a2enmod proxy_fcgi setenvif $ sudo a2enconf php8.1-fpm
警告
我们已经启用了上面的php8.1
和php8.1-fpm
模块,但您需要调整此命令以匹配您当前安装的 PHP 版本。例如,如果您安装了 7.4 版本,则命令将为 sudo a2enmod php7.4。使用以下命令检查已安装的 PHP 版本:php -v
。进行上述更改后,您需要重新启动 Apache 才能使更改生效:
On RHEL based distros, Arch Linux, and OpenSUSE: $ sudo systemctl restart httpd On Debian and Ubuntu based distros: $ sudo systemctl restart apache2
上述步骤涵盖了最常见的问题,并且应该使您的 Apache Web 服务器能够开始执行 PHP 文件。如果您仍然遇到问题,则很可能是您的 PHP 文件本身存在问题。尝试生成 phpinfo 文档以查看它是否在您的网站上正确显示。如果是这样,则问题出在您自己的 PHP 文件上。
您知道吗?
在 PHP 的最新版本中,不再识别像 这样的短标签,您必须使用
<?php
标记 PHP 代码的开头。确保您的 PHP 文件符合此新更改等。
结束语
在本教程中,我们了解了如何解决 Apache 无法在 Linux 系统上执行 PHP 文件的问题。最简单的修复方法是安装或升级已安装的 PHP 版本。即使安装了 PHP,有时 Apache 也可能不会自动启用必要的模块以允许其读取和执行 PHP 文件。配置正确的模块并重新启动 Apache 后,它现在就可以执行 PHP 文件了。如果仍有问题,请尝试检查 PHP 文件是否有错误,并使用上面链接的 phpinfo
页面进行进一步的故障排除。