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

Homestead无法生效指定PHP版本(CLI为7.1但Web端运行8.0)

问题原因
  • CLI和Web请求的PHP处理程序相互独立:php -v返回的是命令行(CLI)模式的PHP版本,执行sudo update-alternatives --config php仅会修改CLI模式的默认版本,Web请求由Nginx转发给PHP-FPM服务处理,二者版本没有绑定关系,所以会出现两个场景版本不一致的情况。
  • Homestead 12.x 对已存在的站点不会自动同步全局PHP版本配置:你在Homestead.yaml中设置的全局php: "7.1"仅对新建站点生效,旧站点的Nginx配置仍然绑定之前的PHP 8.x FPM socket,不会自动更新。
  • 你之前切换PHP版本后,未同步修改Nginx配置中绑定的FPM版本,导致Web请求仍然走PHP 8.x的处理逻辑。
解决步骤
  1. 先进入Homestead虚拟机,确认PHP7.1-FPM服务正常运行:
    执行命令:systemctl status php7.1-fpm
    如果服务未启动,依次执行:
    sudo systemctl start php7.1-fpm
    sudo systemctl enable php7.1-fpm
    
  2. 方法一:手动修改Nginx站点配置
    • 进入站点配置目录:cd /etc/nginx/sites-available/
    • 找到你对应项目的配置文件(文件名和你绑定的站点域名一致),打开后找到以下配置行:
      fastcgi_pass unix:/var/run/php/php8.x-fpm.sock;
    • 将其中的版本号修改为7.1,修改后为:
      fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    • 保存后执行nginx -t验证配置语法是否正确,提示success后执行sudo systemctl reload nginx重载配置即可。
  3. 方法二:通过Homestead配置自动更新(推荐,避免手动改配置后续被覆盖)
    • 退出Homestead虚拟机,打开宿主机上的Homestead.yaml文件,找到对应站点的配置项,单独指定PHP版本:
      sites:
          - map: 你的站点域名
            to: /home/vagrant/你的项目路径/public
            php: "7.1"
      
    • 在宿主机Homestead目录下执行vagrant reload --provision,等待重配置完成即可,Homestead会自动生成绑定PHP7.1-FPM的站点配置。
补充说明

后续执行composer等PHP相关命令时,建议指定PHP7.1版本执行,避免CLI和Web版本不一致导致的依赖兼容问题,示例命令:php7.1 /usr/local/bin/composer update

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:15:03