前段时间买了个Mac,最近终于有时间用Mac开发程序了,但是还需要配置程序环境,基于一切从简的原则,下载了MAMP的程序包。(apache 版本2.2)
一切准备就绪,第一件事肯定是配置apache的虚拟主机了,按照原来的习惯,随便写了点代码放到了 httpd-vhost.conf 中,当时是这样写的:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Applications/MAMP/htdocs"
<Directory "/Applications/MAMP/htdocs">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
写好后,保存并退出,网页上输入:localhost,正常显示,感觉不错。继续给自己的实际开发模块设置虚拟主机,按照相同的方法,写了下面的代码
<VirtualHost *:80>
ServerName www.aaa.com
DocumentRoot "/Users/name/Desktop/test/public"
ServerAlias www.aaa.com
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
DirectoryIndex index.php index.html index.htm
<Directory "/Users/nam/Desktop/test/wukongdata/public">
Options FollowSymlinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
保存并退出,想到可以在Mac上面开发自己的网站了,那种❤️情澎湃的感觉无语伦比啊,但是结果让我泪奔,输入:www.aaa.com ,显示的内容居然和localhost一样,纳尼,这是什么鬼,第一反应是不是我写错了,仔细检查再检查,没有看出来,还是专业知识不好,度娘关键字“ apache设置虚拟主机 为什么只有第一个生效” ,结果一堆,但没一个看的下去的,幸亏咱买了VPN,上Google,Google还是很强大的,让我看到了一个比较关键的字段,NameVirtualHost *:80 , 我居然忘记了这个东东,在这里一定好好的记一笔,
Mac 自带的apache版本是2.4的,用户访问控制语句是 'Require all granted' ,不同于apache2.2 的 ‘allow from all’,开始还因为这个,现在最新版mamp,没有看apache版本,被坑了一笔。
进行apache版本升级的同学还是要注意一下的,当然,版本升级时多看看apache 的 httpd.conf 源码,应该能注意到这个问题 。
坑,踩过,才知道有多疼 。。。。。。。