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

我不再啰嗦啦,马上开始安装步骤哦!我担心要是再啰唆的话,你们可能就会用板砖扔过来啦。
我开始删除了系统自带的 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 的配置文件是否存在错误。
如果还是没有安装成功,可以直接联系我。