Mac OS X Yosemite 10.10 配置 Apache+PHP 教程注意事项

http://yangjunwei.com/a/1568.html

首先启动 Apache,在终端里输入命令:

1
sudo apachectl start

查看 Apache 版本:

1
httpd -v

在Yosemite 10.10下,apache更新了

1
2
Server version: Apache/2.4.9 (Unix)
Server built: Sep 9 2014 14:48:20

接着测试,我就发现如下几点需要修正,如有其它疑问欢迎交流:

1、重新启用PHP,避免脚本直接显示在页面上

首先是 http://localhost/ 会将 PHP 代码直接显示在页面上,这里需要开启 php 支持:

1
sudo nano /etc/apache2/httpd.conf

按 ctrl+W 查找并去掉代码行前边的 #,如下:

1
LoadModule php5\_module libexec/apache2/libphp5.so

2、开启支持用户级目录 http://localhost/~username/

用户级目录不能访问了,http://localhost/~haibor/,提示:

1
2
Not Found
The requested URL /~haibor/ was not found on this server.

首先配置 haibor.conf 运行命令:

1
sudo vi /etc/apache2/users/haibor.conf

将以下代码保存在 conf 文件中,与 10.9.X 不一样:

1
2
3
4
5
<Directory "/Users/haibor/Sites/">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>

记得给权限:

1
sudo chmod 755 /etc/apache2/users/haibor.conf

这里还需要启用几个支持,运行:

1
sudo nano /etc/apache2/httpd.conf

查找并去掉代码行前边的#,启用如下:

1
2
3
4
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

接着运行:

1
sudo nano /etc/apache2/extra/httpd-userdir.conf

开启:

1
Include /private/etc/apache2/users/\*.conf

最后别忘记重启 Apache

1
sudo apachectl restart

再试一下,是不是成功啦!

http://localhost/~haibor/

注:这里的 haibor 是macbook用户名。

另,如果需要.htaccess支持伪静态rewirte,需要在 httpd.conf 开启代码行:

1
LoadModule rewrite\_module libexec/apache2/mod\_rewrite.so

注:在 MAC OS 系统下 .htaccess 文件是不能直接新建的,而且是隐藏状态!
例如给wordpress添加伪静态,如下命令:

1
2
3
cd ~/Sites/Wordpress
touch .htaccess
vi .htaccess

添加如下内容:

1
2
3
4
5
6
RewriteEngine On
RewriteBase /~haibor/Wordpress/
RewriteRule ^index\\.php$ - \[L\]
RewriteCond %{REQUEST\_FILENAME} !-f
RewriteCond %{REQUEST\_FILENAME} !-d
RewriteRule . /~haibor/Wordpress/index.php \[L\]

记得给予权限及重启:

1
2
chmod 777 .htaccess
sudo apachectl restart