Mac开发环境配置:从用MAMP集成包到亲自动手,安装步骤全解析

之前一直懒得去配置 mac 的开发环境,一直使用一个名为 MAMP 的集成包。对于简单的项目,就用那个集成包来处理;而对于复杂的项目,就全部用 hg 工具将其甩到 ubuntu 的虚拟机里去执行。随着时间的推移,这种方式逐渐让我觉得非常麻烦,所以最终只能自己动手来配置 mac 的开发环境了。

Mac开发环境配置:从用MAMP集成包到亲自动手,安装步骤全解析

我不再啰嗦啦,马上开始安装步骤哦!我担心要是再啰唆的话,你们可能就会用板砖扔过来啦。

我开始删除了系统自带的 Apache,这使得后面的 php 一直无法安装成功。只有重装了 Apache 之后,问题才得以解决。因此,建议不要轻易删除系统自带的 Apache 和 php,高手除外。

homebrew

homebrew 是一个在 mac 系统下非常好用的软件包工具。它的安装过程也很简单。

网上有许多人直接给出了 homebrew 的安装命令,然而大部分的地址已然失效。在 homebrew 网站上,其正中间便是 homebrew 的安装命令,只需直接将其复制到你的终端里并执行即可。

/usr/bin/ruby -e "使用 `curl -fsSL` 来获取 `https://raw.githubusercontent.com/Homebrew/install/master/install` 的内容。"

homebrew 已经安装完成了。接下来,我们使用 brew 来安装 Nginx。有了 brew 之后,安装过程变得非常简单,不需要自己去进行 make 等操作。

安装nginx

brew install nginx

这一句命令使得 nginx 安装好了,然而我们仍需进行配置。

给 nginx 设置管理员权限。若不设置管理员权限,那么 80 端口将不能进行监听。

#这里的目录需依据你实际安装的目录进行填写,默认的就是这个目录,不同之处仅在于 nginx 的版本号。
使用 sudo 命令将 /usr/local/Cellar/nginx/1.10.1/bin/nginx 的所有者更改为 root,所属组更改为 wheel 。
使用 sudo 命令来更改权限,将用户 ID 特殊权限(u+s)应用于 /usr/local/Cellar/nginx/1.10.1/bin/nginx 文件

2.加入launchctl启动控制

在用户的主目录下创建一个名为“Library”的文件夹,然后在“Library”文件夹下创建一个名为“LaunchAgents”的文件夹,如果“Library”文件夹或“LaunchAgents”文件夹不存在,则会自动创建它们。
将 /usr/local/opt/nginx/homebrew.mxcl.nginx.plist 复制到 ~/Library/LaunchAgents/ 路径下。
使用 launchctl 命令加载 ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist 文件,并且使用 -w 参数。

到这里,nginx基本上是完工了

运行nginx :

sudo nginx #打开 nginx
nginx 可执行 -s reload 操作,即重新加载配置;nginx 可执行 -s reopen 操作,即重启;nginx 可执行 -s stop 操作,即停止;nginx 可执行 -s quit 操作,即退出。
nginx -t   #测试配置是否有语法错误

安装MySql

brew install mysql

也是通过一条命令就可以完成,在执行完该命令之后,mysql 就安装好了,紧接着就是对 mysql 进行一些配置。

1.先cd到mysql的目录中:

cd /usr/local/opt/mysql/

2.加入launchctl启动控制

在用户的主目录下创建一个名为 Library 的文件夹,如果该文件夹不存在则一并创建。然后在 Library 文件夹下创建一个名为 LaunchAgents 的文件夹,如果该文件夹不存在也一并创建。即创建 ~/Library/LaunchAgents/ 这个路径。
将 /usr/local/opt/mysql/homebrew.mxcl.mysql.plist 复制到 ~/Library/LaunchAgents/ 路径下。
使用 launchctl 命令加载 ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 文件,并添加 -w 参数。
#取消启动
#使用 launchctl 命令卸载位于 ~/Library/LaunchAgents 路径下的 homebrew.mxcl.mysql.plist 文件。

执行安全设置脚本,将设置 root 账号的密码。倘若不执行这一步骤,那么就无法通过 mysql -u root -p 这个命令来登录 mysql 。在网上,有很多教程都没有给出这方面的说明,所以在此特别予以强调。

/bin 目录下有一个名为 mysql_secure_installation 的程序。

执行上述命令后,会进入到 mysql 的配置环节。具体的步骤在此不做书写。每一个选项都明确说明了其作用。当这个命令执行完毕之后,你便可以通过输入“mysql -u root -p”来登录 mysql 了。

安装php

php 的安装比 nginx 和 mysql 要复杂一些。因为 brew 默认没有 php 的包。

brew tap homebrew/dupes
通过 brew 来安装 josegonzalez/homebrew-php,需要先执行 brew tap 命令。

执行完上面的命令之后,此时才能够安装 php。然而,php 存在很多个版本,你可以通过使用“brew search php”来查看具体的版本。

我电脑上是安装的php 5.6版本的:

使用 brew 来安装 php56,并且在安装过程中包含 imap 特性,包含 tidy 特性,包含调试功能,包含与 mysql 的关联,包含 fpm 组件。

安装成功后,接下来要进行的是对 php 的配置。由于 mac 默认自带 php,所以我们需要将我们安装的 php 添加到环境变量中,而不是继续使用 mac 自带的 php。

sudo vim ~/.bash_profile

#在这个文件最后添加下列语句:
将路径设置为“$(brew --prefix php56)/bin”与当前的 PATH 路径进行合并,即把“$(brew --prefix php56)/bin”添加到 PATH 路径中,具体操作为将“$(brew --prefix php56)/bin:$PATH”赋值给 PATH 环境变量。

#保存文件后,source下这个文件,使刚刚添加的环境变量生效
source ~/.bash_profile

这个时候,你在命令行中执行 php -v 这一操作。此时看到的不再是系统自带的 php 了,而是我们刚刚安装的 php 。

2.加入launchctl启动控制

mkdir -p ~/Library/LaunchAgents
将 /usr/local/opt/php56/homebrew.mxcl.php56.plist 复制到 ~/Library/LaunchAgents/ 路径下。
使用 launchctl 命令加载 ~/Library/LaunchAgents/homebrew.mxcl.php56.plist 文件,并且添加 -w 参数。

配置文件路径

/usr/local/etc/php/5.4/php.ini
/usr/local/etc/php/5.4/php-fpm.conf

配置Nginx 支持 php

执行 sudo 命令来打开 vim 编辑器,编辑 /usr/local/etc/nginx/nginx.conf 文件,以此修改 nginx 的配置文件。

取消配置文件中 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 下的 location ~.php$ {} 的注释,将其修改为以下样子:

location ~ \.php$ {
    fastcgi_intercept_errors on;
127.0.0.1 的 9000 端口用于接收 fastcgi 传递的请求;
    fastcgi_index  index.php;
fastcgi_param 这个参数用于指定脚本文件的路径,其具体的值为 /usr/local/Cellar/nginx/1.10.1/html 加上 fastcgi_script_name 。
将 /usr/local/etc/nginx/fastcgi_params 包含在内。
}

保存文件之后,必须要去重新启动 nginx 。要是不这样做的话,配置文件就不会被加载。

如果重启之后,访问 php 文件显示 404 File Not Found。那么你就需要去检查一下,你 fastcgi_param SCRIPT_FILENAME 后面所跟的目录是否是正确的。

到这里,环境搭建就完成了。

顺便提下nginx 配置虚拟域名:

在 nginx 里,需要监听 80 端口。对于 server_name ,只需在后面输入你想要绑定的域名即可。

使用 sudo 命令打开 /etc/hosts 文件,即 sudo vim /etc/hosts ,然后在该文件的最后添加一行内容。

127.0.0.1    nginx中配置的域名

3.没有了...哪有那么麻烦是吧!

问题列表:

nginx 重启之后,pid 丢失了,然后出现了这样的错误:nginx 出现了错误,具体是 open() “/usr/local/var/run/nginx.pid” 失败了,失败原因是 2:没有这样的文件或目录。

当出现这种情况时,你只需执行以下命令:nginx -c 后面需跟你 nginx 配置文件的目录,该目录可能与我的不同,为 /usr/local/etc/nginx/nginx.conf。

2.访问html文件正常,但是访问php文件直接下载文件

有可能是你忘记进行 nginx 的重启操作,这使得 nginx 尚未加载 php 文件的解析配置,因而无法进行解析。倘若重启之后依然无法成功访问,那就需要去确认 nginx 的配置文件是否存在错误。

如果还是没有安装成功,可以直接联系我。

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

48阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

40阅读

php一句话木马,一句话木马ctf

2026年10月05日

43阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

44阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

42阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

38阅读