如果你是一名 Web 开发者,很多时候都需要在本地搭建服务器测试环境,比如 Apache+Mysql+PHP 这样的环境。事实上 Mac OS X 中想要搭建这样的环境很简单,本文我们就会将详细的教程分享给大家。
首先需要说明的是,Mac OS X 系统其实已经集成了 Apache+PHP环境,用户手动开启即可。在之前的 OS X 系统中,只需要进入「系统偏好设置——共享」,然后开启「Web 共享」就可以打开 Apache。不过在最新的 Mountain Lion 中苹果取消了这个共享功能的图形界面,只能从命令行开启。
启用 Apache/Web 共享
打开终端,运行启动 Apache 命令:
sudo apachectl start
关闭命令:
sudo apachectl stop
重启命令:
sudo apachectl restart
查看 Apache 版本命令:
httpd -v
Mountain Lion 中集成的 Apache 版本如下:
mbp:~ eyon$ httpd -v
Server version: Apache/2.2.22 (Unix)
Server built: Jun 20 2012 13:57:09
启用 Apache 之后,你可以直接在浏览器中访问 http://localhost,如果出现”It works!”就表示运行正常。
Root 目录
启用 Apache 之后,你首先得知道网页文件应该放到哪个目录才能正常运行,相信有过 Linux 服务器配置经验的对此不会陌生。OS X 中默认有两个目录可以直接运行你的 Web 程序,一个是系统级的 Web 根目录,一个是用户级的根目录,大家记下即可。
系统级的根目录是:
/Library/WebServer/Documents/
它对应的网址是:
http://localhost
用户级的根目录是:
~/Sites
~/Sites 也就是你用户目录下面的”站点”目录,在 OS X Mountain Lion 中,这个目录可能没有,所以你需要手动建立一个同名目录。建立方式很简单,直接在终端中运行:
sudo mkdir ~/Sites
建立”站点”文件夹之后,检查下面这个文件夹下面是不是有”你的用户名.conf”这个文件。
/etc/apache2/users/
如果没有,那么你需要创建一个,取名为”你的用户名.conf”,你可以使用 vi 或者 nano 这两种编辑器之一来创建。
sudo vi /etc/apache2/users/你的用户名.conf
创建之后将下面的这几行内容写到上面的 conf 文件中:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
文件保存之后,给它赋予相应的权限:
sudo chmod 755 /etc/apache2/users/你的用户名.conf
接下来重启 Apache,以使该配置文件生效:
sudo apachectl restart
之后你就可以通过浏览器访问你的用户级目录网页了,你可以随便防个网页进去测试一下。根目录地址为:
http://localhost/~username/
(请将username改成你的用户名)
启用 PHP
Mountain Lion 中已经集成了 PHP 5.3.13 版本,也需要手动开启。你可以用 vi 或者 nano 编辑器打开下面这个文件:
sudo nano /etc/apache2/httpd.conf
然后搜索”php”,第一条匹配的应该是下面这句代码:
LoadModule php5_module libexec/apache2/libphp5.so
请将这句代码前面的#去掉,然后保存文件。
接下来再一次重启 Apache:
sudo apachectl restart
现在 PHP 应该已经开始工作了,你可以在用户级根目录下(~/Sites/)放一个PHP测试文件,代码如下:
<?php phpinfo(); ?>
---------------------------------------------------------
Yosemite 10.10 Apache、PHP 配置
Mac OSX 升级到 Yosemite 10.10 后本地的站点服务(Sites)都无法运行了,原因是随着系统的更新,Apache 版本升级到了 2.4.9,PHP 升级到了 5.5.14 版本,Apache 的配置需要做相应的修改,具体步骤如下:
启动 Apache
sudo apachectl start
设置允许访问用户目录
1、修改 httpd.conf 配置:
sudo nano /etc/apache2/httpd.confcontrol + w 查找以下代码,去掉注释符
#
: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 LoadModule php5_module libexec/apache2/libphp5.so Include /private/etc/apache2/extra/httpd-vhosts.conf Include /private/etc/apache2/extra/httpd-userdir.conf2、修改 httpd-userdir.conf 配置:
sudo nano /etc/apache2/extra/httpd-userdir.confcontrol + w 查找以下代码,去掉注释符
#
:Include /private/etc/apache2/users/*.conf3、修改 yourUserName.conf 配置:
sudo vi /etc/apache2/users/yourUserName.conf注:yourUserName 为你的用户名称,如果没有该文件则新增一个,然后将内容修改为:
<directory "="" users="" haibor="" sites="" style="box-sizing: border-box;"> Options Indexes MultiViews AllowOverride None Require all granted完成修改后设置权限为 755:
sudo chmod 755 /etc/apache2/users/yourUserName.conf4、最后重启 Apache
sudo apachectl restart至此就可以通过浏览器访问 http://localhost/~yourUserName/ 目录了。