High Sierra系统下MAMP本地站点仅Firefox可用,Chrome/Safari无法访问求助
我完全懂你升级High Sierra后遇到的这种糟心情况——本地MAMP站点突然罢工,浏览器还乱跳HTTPS,不同浏览器表现还不一样,折腾起来真的头大。结合你描述的细节,咱们一步步来解决:
1. 先搞定HTTPS自动跳转的核心问题
Chrome和Safari自动强制用https://访问,大概率是两个原因:一是.dev现在是正式顶级域名,主流浏览器会默认强制这类域名走HTTPS;二是浏览器缓存了HSTS安全策略,就算你想换回HTTP也会被强制跳转。
解决办法:
- 紧急止损:更换本地域名后缀:把你的
local.sitename.dev改成local.sitename.local或者local.sitename.test,彻底避开浏览器的强制HTTPS规则。 - 清理浏览器HSTS缓存:
- Chrome:地址栏输入
chrome://net-internals/#hsts,在「Delete domain security policies」里输入你的.dev域名,点击删除。 - Safari:可以直接重置浏览器缓存(设置->隐私->管理网站数据->搜索你的域名并删除),或者用终端命令清除全局HSTS缓存(不过改域名的方案更一劳永逸)。
- Chrome:地址栏输入
2. 修复用户Sites目录的Apache配置
你提到需要创建username.conf,这是High Sierra中Apache识别用户个人站点目录的关键步骤,之前只有Guest.conf确实会导致localhost/~myusername访问异常:
打开终端,创建你的用户配置文件:
sudo nano /private/etc/apache2/users/你的用户名.conf(把「你的用户名」换成你实际的Mac用户名,比如
rob.conf)在文件中粘贴以下配置,保存用户目录的访问权限:
<Directory "/Users/你的用户名/Sites/"> Options Indexes MultiViews FollowSymLinks AllowOverride All Require all granted </Directory>(同样替换「你的用户名」)
保存并退出编辑器:按
Ctrl+O回车确认保存,再按Ctrl+X退出。调整配置文件的权限,确保Apache能读取:
sudo chmod 644 /private/etc/apache2/users/你的用户名.conf检查Apache主配置文件,确保用户目录模块已加载:
打开/private/etc/apache2/httpd.conf,找到下面这行,去掉前面的#注释:#Include /private/etc/apache2/extra/httpd-userdir.conf再打开
/private/etc/apache2/extra/httpd-userdir.conf,确保下面这行也没有被注释:Include /private/etc/apache2/users/*.conf
3. 处理MAMP与系统Apache的冲突
你提到系统Apache和MAMP Apache的表现不一致,核心原因是两者的配置文件、端口(默认都是80)、站点路径完全独立,必须明确选择其中一套环境使用:
如果想用MAMP的Apache:
彻底关闭系统自带Apache:
sudo apachectl stop sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist(加
-w是禁止系统Apache开机自启,避免后续冲突)配置MAMP的虚拟主机(可选但推荐):
打开MAMP偏好设置 -> Apache,点击「Open conf file」打开MAMP的Apache主配置,找到下面这行并去掉#注释:#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf然后打开
/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf,添加你的站点配置:<VirtualHost *:80> DocumentRoot "/Users/你的用户名/Sites/你的站点目录" ServerName local.sitename.local <Directory "/Users/你的用户名/Sites/你的站点目录"> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> </VirtualHost>修改hosts文件映射域名:
打开终端编辑hosts:sudo nano /etc/hosts添加一行域名映射:
127.0.0.1 local.sitename.local
4. 修复站点目录的权限问题
权限错误是403 Forbidden的常见原因,确保你的Sites目录和站点文件权限正确:
# 设置Sites目录权限为755(可读可执行) chmod 755 /Users/你的用户名/Sites # 设置站点文件权限为644(可读) chmod -R 644 /Users/你的用户名/Sites/你的站点目录 # 确保所有子目录权限为755 find /Users/你的用户名/Sites -type d -exec chmod 755 {} \;
5. 重启服务测试
做完以上步骤后,重启MAMP的Apache和MySQL服务,然后在浏览器输入http://local.sitename.local访问——应该就能正常打开站点了。如果还是有问题,可以查看MAMP的Apache日志(MAMP偏好设置->Apache->Open Log),里面会有具体的错误提示,方便针对性排查。
内容的提问来源于stack exchange,提问作者Rob M

