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

已安装PHP但Nginx无法执行PHP代码 疑与WP Local环境冲突

问题根源

WP Local(Local by Flywheel)部署的Nginx、PHP7、MySQL为应用级隔离环境,默认仅为应用内创建的WordPress站点目录配置PHP解析规则,Nginx默认站点路径/var/www/html没有配置PHP-FPM转发规则,且对应PHP-FPM进程默认不会作为系统服务常驻,因此会出现纯HTML页面正常加载、PHP代码无法执行直接输出源码或返回空白的现象。

操作步骤
  • 启动PHP-FPM进程:打开WP Local,启动任意一个已创建的WordPress站点,拉起对应版本的PHP-FPM进程。
  • 查询PHP-FPM监听地址:终端执行命令ps aux | grep php-fpm,从输出结果中找到--listen参数对应的值,一般为两种形式:Unix Socket文件路径(格式类似/home/当前系统用户名/.config/Local/run/随机字符串/php-fpm.sock),或本地TCP端口(格式类似127.0.0.1:9007),记录该值备用。
  • 修改Nginx默认站点配置:找到Nginx默认站点配置文件(通常路径为/etc/nginx/sites-available/default,若为WP Local内置Nginx则在应用安装目录的conf文件夹下找对应默认站点配置),编辑/var/www/html对应的server块:
    1. 确认根目录与首页索引配置正确:
    root /var/www/html;
    index index.php index.html index.htm;
    
    1. 在server块内添加PHP解析规则,将fastcgi_pass的值替换为上一步记录的PHP-FPM监听地址:
    location ~ \.php$ {
        include fastcgi.conf;
        # Socket监听用这行,替换成实际路径
        fastcgi_pass unix:/实际查到的php-fpm.sock文件路径;
        # TCP端口监听用这行,替换成实际端口,和上面二选一
        # fastcgi_pass 127.0.0.1:实际查到的端口号;
    }
    
  • 配置目录权限:终端执行命令给站点目录授予Nginx运行用户可读权限:
    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 755 /var/www/html
    
  • 校验并重载Nginx配置:
    1. 执行nginx -t,确认输出配置语法正确、测试通过。
    2. 执行nginx -s reload重载配置生效。
  • 功能验证:在/var/www/html目录下新建test.php文件,写入<?php phpinfo();,浏览器访问对应地址,能正常显示PHP信息页即配置成功。
注意事项
  • WP Local的PHP-FPM进程生命周期和应用内站点绑定,若退出WP Local或停止所有应用内站点,PHP-FPM进程会自动退出,外部站点会返回502错误,需保持至少一个WP Local内站点处于启动状态,也可手动将对应版本的PHP-FPM注册为系统服务实现自启。
  • 若需要切换PHP版本,只需在WP Local内将任意站点切换到目标PHP版本,重新查询新的PHP-FPM监听地址,替换Nginx配置中的fastcgi_pass值后重载Nginx即可。
  • 不要修改WP Local自动生成的WordPress站点专属Nginx配置,避免原有本地WordPress站点运行异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:01:04