Mac OS X中配置Apache

我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。

启动Apache
设置虚拟主机

启动Apache

打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本

接着输入 sudo apachectl start,这样Apache就启动了。打开Safari浏览器地址栏输入 “http://https://https://cfzy.site”,可以看到内容为“It works!”的页面。其位于“/Library(资源库)/WebServer/Documents/”下,这就是Apache的默认根目录。

Apache的安装目录在:/etc/apache2/,etc默认是隐藏的。有三种方式查看:

dock下右键Finder,选择”前往文件夹”,输入”/etc”
在finder下----》前往---》前往文件夹,然后输入/etc
可以在terminal 输入 “open /etc”

设置虚拟主机

在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apche的配置文件
在httpd.conf中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“#”,保存并退出。
运行“sudo apachectl restart”,重启Apache后就开启了虚拟主机配置功能。
运行“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
</VirtualHost>

<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
</VirtualHost>
[/code]
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:

Forbidden
You don’t have permission to access /index.php on this server
最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

增加如下配置
[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
</VirtualHost>

<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
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
[/code]
保存退出,并重启Apache。
如果需要配置不同的端口号,记得在httpd.conf里的Listen new port
运行“sudo vi /etc/hosts”,打开hosts配置文件,加入”127.0.0.1 mysites”,这样就可以配置完成sites虚拟主机了,可以访问“http://mysites”了,在10.8之前Mac OS X版本其内容和“http://https://https://cfzy.site/~[用户名]”完全一致。
注意,记录log的“ErrorLog “/private/var/log/apache2/sites-error_log””也可以删掉,但记录日志其实是一个好习惯,在出现问题时可以帮助我们判断。如果保留这些log代码,一定log文件路径都是存在的,如果随便修改一个不存在的,会导致Apache无法服务而没有错误提示,这个比较恶心。

xampp httpd-vhosts.conf配置多个虚拟目录

1: 用记事本打开C:/WINDOWS/system32/drivers/etc/hosts文件,配置如下:

127.0.0.1 localhost
127.0.0.1 phptest.com

2:因为我xampp是装在C盘的:用记事本打开C:\xampp\apache\conf\httpd.conf文件,找到Include conf/extra/httpd-vhosts.conf,确认前面没有加#.
2.1找到
[code]
<Directory />
AllowOverride none
Require all denied
</Directory>
[/code]
修改权限,变成:
[code]
<Directory />
Order deny,allow
Allow from all
</Directory>
[/code]

2.2在此文件末尾添加如下内容:
[code]
<Directory "D:/eclipse-php/workspace">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
[/code]

3:打开C:\xampp\apache\conf\extra\httpd-vhosts.conf,在此文件末尾添加如下内容:
[code]
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</VirtualHost>

<VirtualHost *:80> //如果配置不同的端口号88,则需要在httpd.conf里面添加 Listen 88
DocumentRoot "D:/eclipse-php/workspace"
ServerName phptest.com
</VirtualHost>
[/code]

5:重启Apache服务即可。