最近在折腾学习HTML5游戏制作,为了测试游戏就需要在本地运行,于是把文件放在 /Libraray/WebServer/Ducuments/ 下,对应的网址:http://localhost/ ,但是慢慢的有些问题就出现了,比如每次到达目录麻烦,懒癌晚期表示不能忍啊啊啊,还有就是读写权限的问题。然后网上搜索得知Mac OS X 是有两个目录可以直接运行web程序的。
一个是系统级的根目录:/Libraray/WebServer/Ducuments
对应网址: http://localhost/
另一个是用户级的根目录:~/Sites
(*注意,user是你的用户名,下同)
创建Sites目录
在用户主页目录下是没有这个Sites目录的,需要我们自己创建,打开terminal,在根目录~下运行以下命令
1 | mkdir Sites |
打开Finder会发现Sites跟一般的文件夹不一样,上面有一个Safari一样的图标呢!至于为什么目录名是Sites??查看/etc/apache2/extra/httpd-userdir.conf
1 | # Settings for user home directories |
第十行就是答案。
检查用户配置文件
建立Sites文件夹之后,检查一下 /etc/apache2/users/ 下面是否有user.conf这个文件,应该会有的,如果没有就自己建一个,我的这个文件内容如下
1 | <Directory "/Users/abel/Sites/"> |
需要把abel替换为你的用户名user。
修改apache配置文件
接着修改/etc/apache2/httpd.conf,找到以下代码行并去掉句首的#使代码行生效
1 | # LoadModule authz_core_module libexec/apache2/mod_authz_core.so |
其次,修改/etc/apache2/extra/httpd-userdir.conf,找到以下代码行并去掉句首的#使代码行生效
1 | # Include /private/etc/apache2/users/*.conf |
重启apache
在Sites里创建一个测试文件index.html,内容随意,重启apache
1 | sudo apachectl restart |
Sites下需要有日记文件目录log,否则apache重启可能会失败且不会有错误提示。重启apache后访问 http://loaclhost/~user/ 就可以看到刚才的index.html 页面了。