MacOS Sierra上 配置Apache2.4本地虚拟主机遇到的坑
之前是做移动端开发的,刚开始学习后台,公司的项目使用PHP做的后台,大家用的都是windows,由于之前是做iOS开发的,我又习惯用自己的电脑,所以自己配的环境跟同事们也是有些许的不同,配一个虚拟主机用于本地调试项目,配了一天,不记录下来真是对不起时间。希望填的坑对看到的人有帮助。
正题:
我碰到的问题是 403
到网上搜了很多相关的回答,相同的我就不重复了,简单概括步骤就是
1、/private/etc/apache2/httpd.conf 文件中
#Include /private/etc/apache2/extra/httpd-vhosts.conf 前的‘#’去掉 让其加载 /private/etc/apache2/extra 中的httpd-vhosts.conf虚拟主机配置文件
2、/private/etc/apache2/extra/httpd-vhosts.conf文件中
添加项目目录权限 (apache2.4) Apache2.2的自行Google就好 两个版本的Apache Directory标签中的结构是不同的
<Directory "自己的项目目录的父目录"> Options Indexes FollowSymlinks Includes ExecCGI AllowOverride All Require all granted </Directory>
以上要注意两点:一是放在 VirtualHost标签外面,二是要用自己项目的父目录。作为一个全局的权限配置,以便给其子目录添加多个虚拟主机,且其子目录都有了相同的目录权限。
3、/private/etc/apache2/extra/httpd-vhosts.conf文件中
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "自己的项目目录" ServerName www.test.com ServerAlias www.test.com ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log" CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common </VirtualHost>
DocumentRoot 填自己的项目所在目录
ServerName host中配的主机域名
4、配置host eg:添加 127.0.0.1 www.hehe.com
5、重启Apache
sudo apachectl start
然后在浏览器中 www.hehe.com 试一下哈!
6、有时碰到权限问题可以检查一下 项目所在文件是否可写,手动 chmod 755 一下项目文件夹
6、其实最重要的一点,也是挡了我一天的问题是:如果此时你遇到了 403 的 Forbidden 权限问题!请你检查一下你的项目是否放在了 Desktop 或其子目录中!!!因为桌面权限高的问题,直接将Apache挡住了连进都进不去,一定会报错 403 的权限问题。所以一定不要将你的项目文件夹放到桌面及其子目录中!
另外Apache的默认目录为/Library/WebServer/Documents
Apache的默认安装目录为/private/etc/apache2 不要混淆两者
另外,给个彩蛋,对于新配环境 主页能打开,但是带参数就 404 报错:
Not Found
The requested URL /v3/Public/login.html was not found on this server.
这是要进到 /private/etc/apache2/httpd.conf 文件中
搜索 LoadModule rewrite_module libexec/apache2/mod_rewrite.so
将前面的 # 去掉,意思是 Apache 开启重写!