Mac下安装Nginx、PHP和MySQL
在 Mac 上进行 PHP
开发,首先需要搭建开发环境。具体的,主要需要安装 Nginx
、 PHP-FPM
和 MySQL
,但由于网上各安装教程中软件版本不同和配置的差异,没有一个可以完全参照教程。遂,吸取前人搭建环境过程中的经验,总结下自己搭建环境的过程,mark。
搭建过程主要分一下几部分说明:首先是安装前系统的版本,以及将要安装的版本,接着是说明安装过程,分别包括Nginx
、 PHP-FPM
和 MySQL
的安装过程,最后以一个简单的例子结束。
安装版本
MAC系统版本和安装的软件版本:
- MAC 系统:OS X EL Captain, Version: 10.11
- Nginx: 1.8.0
- PHP-FPM: PHP 5.6.14 (fpm-fcgi)
- MySQL: 5.6.26
安装过程
下载并安装各软件包均通过 Homebrew,因此,安装之前,需在 Mac 上下载并安装 Homebrew
,在 CLI 中通过下面的命令可以完成:
1 | > ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Homebrew
是 Mac 上用于下载并安装软件包的管理工具,非常便捷。它可以确保下载并安装最新版本的软件,不必担心安全漏洞;并且,会自动下载相关的依赖包。
在每次安装之前,可以先执行下面的命令,更新通过 Homebrew 下载的软件的包,或者更新 Homebrew (如果已经安装的话), 建议每次安装前都运行下:
1 | > brew update && brew upgrade |
一般,通过 Homebrew 下载并安装软件包过程如下:
1 | > brew search pkg_name # 搜索相关的包信息 |
卸载通过 Homebrew 下载并安装的软件包命令如下:
1 | > brew uninstall pkg_name |
并且,通过执行下面的命令,可以检测下载安装的软件包是否有问题或冲突:
1 | > brew doctor |
安装了 Homebrew 之后,就可以正式开始搭建 PHP 开发环境了;)
Nginx
安装 Nginx
,通过 Homebrew
进行搜索,可以看到很多安装包:
1 | > brew search nginx |
这里安装默认的 Nginx
:
1 | > brew install nginx |
添加 Nginx 至开机启动:
1 | > ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents |
添加至开机启动后,会在目录 ~/Library/LaunchAgents
看到如下软链接:
1 | homebrew.mxcl.nginx.plist -> /usr/local/opt/nginx/homebrew.mxcl.nginx.plist |
然后,还需执行如下命令,才可在开机时启动:
1 | > sudo chown root:wheel /usr/local/Cellar/nginx/1.8.0/bin/nginx |
到这里,Nginx 就算安装完成了。开启和停止服务的命令:
1 | > sudo nginx # Start |
在开启 Nginx 服务后,在 CLI 中输入下面命令,并返回如下结果,表明 Nginx 安装成功:
1 | > curl -v http://127.0.0.1:8080 # 测试Web服务 |
Nginx 默认配置监听 8080 端口。
PHP-FPM
Mac 10.11 系统自带了 PHP
和 PHP-FPM
, 不过很多扩展没有安装。这里,选择从 Homebrew 下载带有扩展的版本。由于 brew 默认没有 PHP 安装包,因此,需要通过 brew tab
从第三方下载安装程序:
1 | > brew tap homebrew/dupes |
在下载安装 PHP-FPM之前,需要执行下面命令,否则, 会出现错误
1 | > xcode-select --install |
然后,可以根据个性化配置下载并安装 PHP 了,这里安装配置如下:
1 | > brew install --without-apache --with-fpm --with-mysql php56 |
Homebrew 在下载 PHP-FPM 源码后,还需要进行编译和安装,需要数分钟。到这里,PHP 就安装结束了。
如果需要在 CLI 中执行 PHP 命令,还需要 $PATH
环境变量:
1 | > echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile |
这时,可以在 CLI 中查看 PHP 的版本信息:
1 | > php-fpm -v |
或者:
1 | > php -v |
接着,设置 PHP-FPM
自启动:
1 | > ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/ |
执行如下命令,开启 PHP-FPM 服务:
1 | > launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist |
如果服务启动成功,执行如下命令,将会看到下面的结果(PHP-FPM默认监听端口9000
):
1 | > lsof -Pni4 | grep LISTEN | grep php |
停止 PHP-FPM 服务:
1 | > launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist |
MySQL
安装 MySQL :
1 | > brew install mysql |
添加 MySQL 服务至开机自启动:
1 | > launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist |
对 MySQL 进行安全配置,执行如下命令:
1 | > mysql_secure_installation |
接着,会有一系列的问答,均选择 Y
1 | > Enter current password for root (enter for none): # 直接 Enter |
接着,测试连接:
1 | > mysql -uroot -p |
退出 MySQL时,直接 Ctrl + C
,或者,执行如下命令:
1 | mysql> \q |
开启和停止 MySQL 服务命令如下:
1 | > mysql.server start #启动mysql服务 |
至此,Nginx
、 PHP-FPM
和 MySQL
均已安装成功。
例子
在安装成功Nginx
和 PHP-FPM
之后,就可以启动服务,进行开发了。Nginx
安装路径位于 /usr/local/etc/nginx
,启动 Nginx
服务之前,需要配置 Nginx.conf
。
备份原始配置
1 | > mv /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.conf.bak |
修改 Nginx 配置,如下:
1 | worker_processes 1; |
创建虚拟主机配置目录:
1 | > mkdir /usr/local/etc/nginx/conf.d |
在 /usr/local/etc/nginx/conf.d/
目录下,创建默认服务配置 default.conf
,如下:
1 | server { |
修改完 Nginx
的配置后,可以通过下面命令查看配置是否有问题:
1 | > nginx -t |
对 Nginx
的配置修改完后,需要重启 Nginx
后,新的配置信息才会生效。
最后,在 /Users/thuer/programs/dev-programs/workspace-php/nginx_sites/
下创建 index.php
如下:
1 | <?php phpinfo(); ?> |
在开启 Nginx
和 PHP-FPM
服务之后,在浏览器中输入 localhost:8080
,就可以看到如下页面了:
最后,总结下 Nginx
、 PHP-FPM
和 MySQL
的服务启动与关闭命令:
Nginx
服务:
1 | > sudo nginx # 开启 |
PHP-FPM
服务:
1 | > sudo php-fpm # 开启 |
或者
1 | > launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist # 开启 |
或者,通过别名:
1 | > alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist" |
MySQL
服务:
1 | > mysql.server start # 开启 |
总结
本文主要记录了搭建 PHP 的开发环境过程,描述通过 Homebrew
下载并安装 Nginx
、PHP-FPM
和 MySQL
,最后,以一个简单的例子,说明配置 Nginx
,并启动 Nginx
和 PHP-FPM
服务后,在浏览器中查看PHP页面的过程。