Mac OS X 中默认有两个目录可以直接运行你的 Web 程序,
一个是系统级的 Web 根目录:/Library/WebServer/Documents/
此根目录我们平常使用地址http://localhost来访问
另一个是用户级的根目录,根目录(也是站点目录)是:~/Sites
此根目录我们常常会配置好站点,然后输入站点地址来访问
方法一
下面介绍具体的实现步骤
1.创建Sites目录(如果你的家目录下有这个目录就免了)
2.修改”你的用户名.conf”这个文件(文件位于/etc/apache2/users/)。
1>如果没有,那么你需要创建一个,取名为”你的用户名.conf”
2>编辑文件
sudo vi /etc/apache2/users/你的用户名.conf
然后将下面内容写到上面打开的文件中
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
(请将username改成你的用户名)
3>文件保存(:wq)之后,给它赋予相应的权限:
sudo chmod 755 /etc/apache2/users/你的用户名.conf
运行下面的命令来改变文件的用户和用户组(root和wheel)
sudo chown root:wheel /etc/apache2/users/你的用户名.conf
3.修改apache的httpd.conf文件
先进入相应目录: cd /etc/apache2/
再使用vim编辑器打开文件: sudo vim httpd.conf
然后找到以下信息,将其前面的#去掉:
LoadModule php5_module libexec/apache2/libphp5.so LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule rewrite_module libexec/apache2/mod_rewrite.so (如果你需要重定向)
4.修改/etc/apache2/extra/httpd-userdir.conf
sudo vim /etc/apache2/extra/httpd-userdir.conf
找到下面信息,将其前面的#去掉:
Include /private/etc/apache2/users/*.conf
5.此时访问http://localhost/~username/,
重新打开httpd.conf文件,
sudo vim /etc/apache2/httpd.conf
找到
<Directory /> AllowOverride none Require all denied </Directory>
修改为:
<Directory /> AllowOverride none Require all granted </Directory>
6.重启apache: sudo apachectl restart
7.浏览器输入:localhost/~username/ 进行访问
上面的username换成你自己的名字
方法二
1.创建Sites目录,同方法一种一样
2.修改apache配置文件
打开文件
sudo vi /etc/apache2/httpd.conf
找到下面的文字并去掉前面的“#”,保存并退出。
“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,
重启apache,开启虚拟主机配置功能: sudo apachectl restart
3.修改虚拟主机配置文件
打开虚拟主机配置文件
sudo vi /etc/apache2/extra/httpd-vhosts.conf
将以前的虚拟主机配置文件注释掉,以供参考,在它们每行前面加上#就可以了
然后增加如下配置:
<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/username/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>
同样上面的username换成你自己的名字
保存(:wq)退出,并重启Apache, sudo apachectl restart
4.修改hosts配置文件
打开hosts配置文件
sudo vi /etc/hosts
加入"127.0.0.1 dev.yoursites.com",
另外提一种利用软连接来快速访问一个目录的方法
使用场景是在桌面创建一个practice 文件夹,里面会分类放一些平时简单小练习和测试用代码。
具体的步骤:((下面用到username的地方都改为你自己的名字))
1.在桌面创建一个新的文件夹practice: mkdir /Users/username/Desktop/parctice
2.更改practice文件的权限 chmod 755 /Users/username/Desktop
3.进入apache的根目录中 cd /Library/WebServer/Documents
4.创建一个project文件夹 mkdir project
5.更改该文件夹的权限 sudo chown username:staff project
6.进入该文件件下 cd project
7.建立一个通往桌面的软连接: ln -s /Users/username/Desktop/practice .
8.在桌面的practice文件夹中写一个test.php文件,在浏览器中打开 http://localhost/project/test.php
另外由于权限问题,我们需要更改下apache配置文件中的所属用户组
User yourusername
Group staff
网友评论