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

如何解决MacOS Monterey下Homebrew的PHP浏览器与CLI版本不一致

问题根源

终端运行的php是Homebrew安装的CLI版本,和Apache服务加载的PHP解析模块完全独立。当前浏览器输出PHP 7.4,是因为启动的Apache服务默认加载了系统自带的旧版PHP模块,没有关联到Homebrew安装的PHP 8.0。

配置步骤
  • 先彻底停掉所有运行中的Apache进程,避免端口和进程冲突:
brew services stop httpd
sudo apachectl stop

Mac自带的Apache和Homebrew安装的httpd是两套独立服务,必须全部停止

  • 查询Homebrew安装的PHP 8.0的动态模块路径,执行命令:
    find /opt/homebrew/opt/php@8.0 -name "libphp*.so"
    正常会返回类似/opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp8.so的路径,复制留存备用。
  • 编辑Homebrew版Apache的配置文件,文件路径为/opt/homebrew/etc/httpd/httpd.conf:
    1. 全局搜索旧版PHP加载配置,找到形如LoadModule php7_module 任意路径的行,在行首加#注释掉。
    2. 在刚才注释的位置附近,新增PHP 8.0模块加载配置,路径替换为你上一步查到的实际路径:
      LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp8.so
    3. 找到DirectoryIndex配置项,在index.html前添加index.php,修改后配置为:
      DirectoryIndex index.php index.html
    4. 在配置文件最末尾追加如下内容,指定Apache将.php文件交给PHP模块解析:
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 校验配置是否存在语法错误,执行命令:
    /opt/homebrew/opt/httpd/bin/httpd -t
    如果输出Syntax OK即可进入下一步,否则根据报错提示回去修正配置。
  • 启动Homebrew版Apache服务并设置开机自启:
    brew services start httpd
  • 清除浏览器缓存后重新访问phpinfo()页面,即可看到PHP版本已经切换为8.0。

注意:MacOS Monterey对系统内置Apache的权限限制极严,不建议修改系统自带Apache的配置加载第三方PHP模块,直接使用Homebrew安装的httpd服务搭配同源的PHP模块是稳定性最高的方案,不会触发系统权限拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:48:31