如何解决 Apache 直接显示 PHP 源码问题 ?
在设置 web 服务器时,您可能会遇到浏览器直接显示原始 PHP 代码的问题。这通常意味着您的服务器没有正确处理 PHP 文件。让我们看看为什么会发生这种情况,以及如何在基于 Debian 和 RHEL 的系统上修复它。
可能的原因
- PHP 模块没有在 Apache 中正确安装或配置。
- Apache 配置中 .php 文件没有链接到 PHP 模块。
- .htaccess 文件中有错误。
1. 安装配置 PHP
首先,确保安装了 PHP 和 Apache PHP 模块。
On Debian-based Systems
sudo apt update
sudo apt install php libapache2-mod-php
On RHEL-based Systems
sudo yum install php php-common
sudo yum install php-fpm
确保已启用 PHP 模块,替换 X.X 为您的 PHP 版本,如:8.2
sudo a2enmod phpX.X
检查 PHP 文件的 Apache 配置
您的 Apache 配置应该告诉服务器使用 PHP 模块处理 .php 文件。
On Debian-based Systems
编辑 apache2.conf 配置文件
sudo nano /etc/apache2/apache2.conf
确保包含以下内容:
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
On RHEL-based Systems
编辑 httpd.conf 配置文件
sudo nano /etc/httpd/conf/httpd.conf
确保包含以下内容:
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
3. 检查 .htaccess 文件
如果你使用 .htaccess 文件,检查可能会阻止 PHP 文件正常运行的指令。查找包含 php_value 或 php_flag 这样的行,并确保它们被正确设置或临时注释掉以进行测试。
4. 重启 Apache
保存更改后,重新启动 Apache 服务
On Debian-based Systems
sudo systemctl restart apache2
On RHEL-based Systems
sudo systemctl restart httpd
5. 检查文件扩展名
确保 PHP 文件的扩展名为 .php,Apache 只在文件扩展名正确的情况下将文件作为 PHP 处理。
6. 检查错误日志
查看 Apache 错误日志以寻找线索
On Debian-based Systems
sudo tail /var/log/apache2/error.log
On RHEL-based Systems
sudo tail /var/log/httpd/error_log
我的开源项目
评论已关闭