前言
我使用的
Mac OS X
版本是10.8.2
,Mac
自带了Apache
环境。
1、启动Apache
2、设置虚拟主机
启动Apache
打开“终端(terminal
)”,输入 sudo apachectl -v
,(可能需要输入机器秘密)。如下显示Apache
的版本
Server version: Apache/2.4.34 (Unix)
Server built: Feb 22 2015 20:20:11
接着输入 sudo apachectl start
,这样Apache
就启动了。打开Safari
浏览器地址栏输入 http://localhost
,可以看到内容为“It works!
”的页面。其位于/Library(资源库)/WebServer/Documents/
下,这就是Apache
的默认根目录。
Apache
的安装目录在:/etc/apache2/
,etc
默认是隐藏的。有三种方式查看:
1、
dock
下右键Finder
,选择”前往文件夹”,输入/etc
2、在finder
下->前往->前往文件夹,然后输入/etc
3、可以在terminal
输入open /etc
设置虚拟主机
1、在终端运行
sudo vi /etc/apache2/httpd.conf
,打开Apche
的配置文件 2、在httpd.conf
中找到#Include /private/etc/apache2/extra/httpd-vhosts.conf
,去掉前面的#
,保存并退出。
3、运行sudo apachectl restart
,重启Apache
后就开启了虚拟主机配置功能。
4、运行sudo vi /etc/apache2/extra/httpd-vhosts.conf
,就打开了配置虚拟主机文件httpd-vhost.conf
,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:
<</code>VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</</code>VirtualHost>
<</code>VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</</code>VirtualHost>
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问
localhost
时出现如下提示:
Forbidden You don't have permission to access /index.php on this server
最简单的办法就是在它们每行前面加上#
,注释掉就好了,这样既能参考又不导致其他问题。
5、增加如下配置:
<</code>VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
</</code>VirtualHost>
<</code>VirtualHost *:80>
DocumentRoot "/Users/snandy/work"
ServerName mysites
ErrorLog "/private/var/log/apache2/sites-error_log"
CustomLog "/private/var/log/apache2/sites-access_log" common
<</code>Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</</code>Directory>
</</code>VirtualHost>
保存退出,并重启
Apache
。
6、运行sudo vi /etc/hosts
,打开hosts
配置文件,加入127.0.0.1 mysites
,这样就可以配置完成sites
虚拟主机了,可以访问http://mysites
了,在10.8之前Mac OS X
版本其内容和http://localhost/~[用户名]
完全一致。 注意,记录log
的ErrorLog "/private/var/log/apache2/sites-error_log"
也可以删掉,但记录日志其实是一个好习惯,在出现问题时可以帮助我们判断。如果保留这些log
代码,一定log
文件路径都是存在的,如果随便修改一个不存在的,会导致Apache
无法服务而没有错误提示,这个比较恶心。