最近需要用一下服务器,一搜发现 Mac OS 自带有 Apache 服务器,很开心!心想总算没浪了我8k大洋。
折腾了一晚上,按照配置一步步不知道试了多少遍,Apache系统级根目录到时很快解决,用户级根目录依旧不行。郁闷,最后终于看到一篇文章中说 OS X Yosemite 10.10中的配置是有些不同的!这才发觉走了一大圈弯路。
现在这里将 OS X Yosemite 中配置 Apache 的知识分享给大家!
##启动Apache 首先启动 Apache,子终端里输入命令:
$ sudo apachectl start
关闭 Apache:
$ sudo apachectl stop
重启 Apache:
$ sudo apachectl restart
查看 Apache 版本:
$ httpd -v
在Yosemite 10.10下,apache更新了
Server version: Apache/2.4.9 (Unix)
Server built: Sep 9 2014 14:48:20
启用 Apache 之后,在浏览器中访问 http://localhost 或 http://127.0.0.1,如果出现“It works!”就表示运行正常。
##Root目录
OS X 中默认有两个目录可以直接运行你的 Web 程序,一个是系统级的 Web 根目录,一个是用户级的根目录,大家记下即可。
Apache系统级的根目录及对应网址是:
/Library/WebServer/Documents/
http://localhost
##开启用户级目录
注:以下 username 为用户名,需要按实际修改。
用户级的根目录及对应网址是:
~/Sites
http://localhost/~username/
~/Sites 也就是你用户目录下面的”站点”目录,在 OS X 中,这个目录可能没有,所以你需要手动建立一个同名目录。建立方式很简单,直接在终端中运行:
$ sudo mkdir ~/Sites
建立“站点”文件夹之后,检查 /etc/ 文件夹下面是不是有“username.conf”这个文件:
/etc/apache2/users/
如果没有,那么你需要创建一个,取名为“username.conf”,可以使用 vi 或者 nano 这两种编辑器之一来创建。
$ sudo vi /etc/apache2/users/username.conf
创建之后将下面的这几行内容写到上面的 conf 文件中:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
文件保存之后,给它赋予相应的权限:
$ sudo chmod 755 /etc/apache2/users/username.conf
这里还需要启用几个支持,运行:
$ sudo vim /etc/apache2/httpd.conf
查找并去掉代码行前边的#,启用如下:
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
接着运行:
$ sudo vim /etc/apache2/extra/httpd-userdir.conf
开启:
Include /private/etc/apache2/users/*.conf
最后别忘记重启 Apache
$ sudo apachectl restart
再试一下,是不是成功啦!在浏览器中输入下面网址:
http://localhost/~username/
另,如果需要.htaccess支持伪静态rewirte,需要在 httpd.conf 开启代码行:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
参考文章: