You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora Linux Apache服务器中PHP文件无法正常解析问题求助

问题:Apache无法解析PHP文件,直接下载而非执行

环境与操作步骤

在Fedora Linux机器上安装Apache Web服务器及PHP,执行命令:

sudo dnf install httpd
sudo dnf install php php-mysqlnd php-pdo php-gd php-mbstring
sudo systemctl start httpd
sudo systemctl enable httpd

为验证服务器状态,创建测试文件/var/www/html/info.php,内容如下:

<?php
echo "Hello, World!";
?>

问题现象

Web服务器运行正常,但访问http://localhost/info.php时,/var/www/html/info.php被当作可下载文件直接下载,未解析执行并显示"Hello, World!"。

已尝试的无效操作

修改/etc/httpd/conf/httpd.conf文件,在<IfModule mime_magic_module>块内添加以下配置,但未解决问题:

<IfModule mime_magic_module>
    #
    # The mod_mime_magic module allows the server to use various hints from the
    # contents of the file itself to determine its type.  The MIMEMagicFile
    # directive tells the module where the hint definitions are located.
    #
    MIMEMagicFile conf/magic

    LoadModule php7_module modules/libphp7.so

    AddType application/x-httpd-php .php .php3 .phtml .html
    AddType application/x-httpd-php-source .phps
</IfModule>

排查与解决方法

1. 确认PHP模块的实际路径

Fedora中PHP的Apache模块路径并非固定为modules/libphp7.so,先检查系统中实际的PHP模块文件:

ls /usr/lib64/httpd/modules/ | grep php

通常会输出类似libphp8.2.so的文件名,后续配置需使用实际文件名。

2. 调整模块加载位置

LoadModule指令不应放在<IfModule mime_magic_module>块内,需移至httpd.conf的全局配置区域:

LoadModule php<version>_module /usr/lib64/httpd/modules/libphp<version>.so

将<version>替换为实际的PHP版本号(如8.2)。

3. 启用系统默认的PHP配置

Fedora安装PHP后,会自动在/etc/httpd/conf.d/目录生成php.conf文件,该文件已包含正确的AddType和模块加载配置。检查httpd.conf中是否包含该目录的引用:

Include conf.d/*.conf

若存在此配置,无需手动在主配置中添加PHP相关规则。

4. 重启Apache服务

修改配置后必须重启服务才能生效:

sudo systemctl restart httpd

5. 验证模块加载状态

执行以下命令确认PHP模块已成功加载:

httpd -M | grep php

若输出包含php<version>_module (shared),说明模块加载正常。

内容的提问来源于stack exchange,提问作者Artem Tartakovskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:15:04