Mac Yosemite 配置Apache


文章作者:松阳

本文出自 阿修罗道,禁止用于商业用途,转载请注明出处。  

原文链接:http://blog.csdn.net/fansongy/article/details/43449337







基本知识

下面是Apache的一些基本设置 参考这篇文章

打开“终端(terminal)”,输入

sudo apachectl -v

可显示Apache的版本

接着输入 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,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:
<VirtualHost *:80>
     ServerAdmin [email protected]
     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 [email protected]
     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>

而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示.

Forbidden
You don‘t have permission to access /index.php on this server

最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

增加如下配置

<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/fansy/Sites"
    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>

保存退出,并重启Apache。

运行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无法服务而没有错误提示,这个比较恶心。

Forbidden

经过了上面的设置后 依旧报错 :

Forbidden
You don‘t have permission to access / on this server.

查询原因是 Yosemite 权限策略更改了。需要更改一些配置,我参考了这篇文章

核心就是打开libphp5.somod_userdir.so这两个库的加载,启用httpd-userdir.conf配置。当然我们刚才配置好的虚拟主机也不耽误,能够一起使用。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。