记录了 macOS 下使用 Apache 服务遇到的一个坑,最后发现是新版本 macOS 策略改变的问题,最后在国外某个论坛上最终找到了解决方法,特此既记录之。

Apache 路径

/etc/apache2/
$ cd /etc/apache2/
$ ls
extra			httpd.conf.pre-update	mime.types		other
httpd.conf		magic			original		users

启动服务

sudo apachectl start/restart   # 启动apache
sudo apachectl stop            # 停止apache

Markdown
发现 Apache 已经可以正常工作了,接下来修改默认网站路径。

修改默认网站目录

修改配置文件

macOS 下 apache 默认的网站路径是 /Library/WebServer/Documents
我们来修改 /etc/apache2/httpd.conf 找到 DocumentRoot 这行来进行修改:

$ vim /etc/apache2/httpd.conf

然后改为我们自己的网站路径的配置文件。

重启 apache 来生效

sudo apachectl restart

效果


这个是什么情况??? 报了如下错了:

You don't have permission to access / on this server.

表急,是我一开始想的太简单了,不能灰心!
查看 apache 报错日志: cat /private/var/log/apache2/error_log得到如下的报错信息:

client denied by server configuration

然后根据这个报错,Google了下找到了国外的几个论坛,最终解决了问题。

解决 403 的问题

网上查资料发现是因为 macOS 版本升级导致了 Apache 策略发生变更了,所以我们修改后还是会出现 403 无权访问的情况。
解决方法:备份原有的 httpd.conf配置文件,把同级目录下的 httpd.conf.pre-update 重命名为httpd.conf
然后再修改默认的网站根目录:

需要修改原来的默认路径,然后改为自己的路径。全文搜索 只有这 2 处是/Library/WebServer/Documents 然后查找替换了下。

再次重启 apache

sudo apachectl restart

macOSLinux都有一个共同的特点: 凡是修改过配置文件的服务,当我们修改过后 必须重启服务 才可以生效。

点评

2021 年回头看这篇文章,发现以前自己真的是蛋疼,我现在都是用默认的网站路径了,没事为啥要自己改网站默认路径呢?不是很懂当时的脑回路。

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光