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

Mac Monterey切换PHP 8.0后本地站点出现403禁止错误求助

问题描述

Mac Monterey 12.5.1系统,原本PHP 7.4环境下本地托管站点运行正常,安装PHP 8.0并切换后访问站点出现403错误,切回PHP 7.4则恢复正常。

相关配置信息:

httpd-vhosts.conf 站点配置

<VirtualHost *:80>
  DocumentRoot "/Users/my.name/Sites/mysite"
  ServerName mysite.loc
  <Directory />
      Options FollowSymLinks
      AllowOverride all
  </Directory>
  <Directory /Users/my.name/Sites/>
      Options FollowSymLinks
      AllowOverride all
      Order allow,deny
      allow from all
</Directory>

httpd.conf 相关配置行

LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so "Certificate Name"

sudo apachectl configtest 执行结果

Allowing module loading process to continue for module at /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so because module signature matches authority "Certificate Name" specified in LoadModule directive
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
Syntax OK
排查与解决步骤
  • 补全PHP 8.0的Apache处理规则
    仅加载php_module不够,需在httpd.conf或单独的php.conf中添加PHP文件的处理规则:

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    

    同时确保httpd.conf中已注释掉PHP 7.4的模块加载行,避免版本冲突。

  • 检查并修复站点目录权限
    403错误多数和权限相关,执行以下命令排查:

    1. 查看目录权限:ls -ld /Users/my.name/Sites/mysite
    2. 调整所有者权限:sudo chown -R my.name:staff /Users/my.name/Sites/mysite
    3. 开放Apache运行用户(通常为_www)的访问权限:sudo chmod -R 755 /Users/my.name/Sites/mysite
  • 更新目录访问规则为Apache 2.4语法
    当前配置中Order allow,deny是Apache 2.2的语法,Monterey自带的Apache为2.4版本,需替换为:

    <Directory /Users/my.name/Sites/>
        Options FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
    

    建议同时为站点根目录添加更精准的配置:

    <Directory "/Users/my.name/Sites/mysite">
        Options FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
    
  • 确认必要Apache模块已启用
    检查httpd.conf中以下模块是否已加载(去掉行首的#):

    LoadModule authz_core_module libexec/apache2/mod_authz_core.so
    LoadModule authz_host_module libexec/apache2/mod_authz_host.so
    LoadModule rewrite_module libexec/apache2/mod_rewrite.so
    
  • 重启Apache并排查日志
    执行命令重启服务:sudo apachectl restart
    若仍有问题,查看错误日志定位具体原因:tail -f /var/log/apache2/error_log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:05:23