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

Ubuntu 22.04.3下Apache+PHP-FPM无法解析PHP代码求助

问题排查:Apache返回PHP源码而非执行(PHP-FPM配置)

问题现象

在Ubuntu 22.04.3 LTS系统上安装PHP-FPM并启用proxy_fcgi模块后,访问PHP测试文件(如phpinfo.php)时,Apache直接返回PHP源码,而非执行后输出PHP环境信息。已确认PHP-FPM服务运行正常、Unix套接字存在,Apache日志无错误信息,相关模块已启用,但问题仍未解决。

相关配置与验证信息

虚拟主机配置(/etc/apache2/sites-enabled/000-default.conf)

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /var/www/html>
    Options -Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
    </Directory>
    <FilesMatch \.php$>
        SetHandler “proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/”
    </FilesMatch>
</VirtualHost>

已启用的Apache模块

access_compat.load  autoindex.conf  filter.load       proxy_fcgi.load
alias.conf          autoindex.load  mime.conf         proxy_http.load
alias.load          deflate.conf    mime.load         reqtimeout.conf
auth_basic.load     deflate.load    mpm_event.conf    reqtimeout.load
authn_core.load     dir.conf        mpm_event.load    setenvif.conf
authn_file.load     dir.load        negotiation.conf  setenvif.load
authz_core.load     env.load        negotiation.load  status.conf
authz_host.load     fcgid.conf      proxy.conf        status.load
authz_user.load     fcgid.load      proxy.load

服务与套接字验证

# PHP-FPM进程状态
root 31905 0.0 1.0 202252 19948 ? Ss 13:35 0:00 php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)
www-data 31907 0.0 0.4 202828 9512 ? S 13:35 0:00 php-fpm: pool www
www-data 31908 0.0 0.4 202828 9512 ? S 13:35 0:00 php-fpm: pool www

# Unix套接字存在
srw-rw---- 1 www-data www-data 0 Apr 28 16:49 /run/php/php-fpm.sock

# 访问测试返回源码
$ curl http://localhost/phpinfo.php
<?php
phpinfo();
?>

问题根源

虚拟主机配置中SetHandler指令使用了中文全角引号(“”),Apache无法识别该语法,导致.php文件的处理规则未生效,因此直接返回源码。

解决步骤

  1. 编辑虚拟主机配置文件:
sudo nano /etc/apache2/sites-enabled/000-default.conf
  1. 将SetHandler行的全角引号替换为半角双引号:
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
  1. 重启Apache服务使配置生效:
sudo systemctl restart apache2
  1. 再次访问测试文件,确认PHP代码已正常执行。

内容的提问来源于stack exchange,提问作者binary searcher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:31:34