Mac(Catalina)安装Apache遇ServerRoot无效目录错误求助
解决Mac Catalina下Apache启动ServerRoot无效的问题
我之前在Catalina上折腾Apache的时候也碰到过一模一样的问题,给你几个针对性的排查和解决步骤:
第一步:确认ServerRoot目录真实存在
先别着急改配置,先验证你指定的目录到底有没有。打开终端执行:ls -ld /usr/local/etc/httpd如果输出显示
No such file or directory,那先创建这个目录:sudo mkdir -p /usr/local/etc/httpd第二步:检查目录权限是否符合要求
Apache运行时用的是_www用户,这个用户必须能访问ServerRoot目录。执行下面的命令查看权限:ls -l /usr/local/etc/ | grep httpd如果权限不是
drwxr-xr-x或者所有者不是_www,就修改权限:sudo chmod -R 755 /usr/local/etc/httpd sudo chown -R _www:_www /usr/local/etc/httpd第三步:确保配置里用的是绝对路径且格式正确
打开/usr/local/etc/httpd/httpd.conf,找到第31行的ServerRoot配置,确认是绝对路径且带引号:ServerRoot "/usr/local/etc/httpd"别用相对路径,也别漏了引号(虽然这里路径没空格,但规范写法能避免很多隐性问题)。
第四步:验证配置文件语法
很多时候表面是ServerRoot错误,实际可能是配置文件里其他地方有问题。执行下面的命令检查语法:httpd -t如果有其他错误,终端会明确提示行号和问题,先把那些问题解决掉。
第五步:确认你操作的是正确的Apache实例
Catalina自带了一个Apache,如果你是用Homebrew装的第三方Apache,很可能搞混了配置文件。先看你当前用的是哪个httpd:which httpd- 如果输出是
/usr/local/bin/httpd,说明是Homebrew安装的,对应配置文件是/usr/local/etc/httpd/httpd.conf - 如果是
/usr/sbin/httpd,那是系统自带的,配置文件在/etc/apache2/httpd.conf
确保你修改的是对应实例的配置文件,别改了A的配置却启动了B。
- 如果输出是
如果上面的步骤都试过还是不行,你可以把httpd -t的完整输出贴出来,我再帮你排查~
内容的提问来源于stack exchange,提问作者GoitxoCv
相关产品推荐
相关产品推荐

