现在的 PHP 开发基本上都是基于 Nginx + PHP-FPM + MySQL 环境来运行的,那么接下来笔者打算来简单介绍一下 macOS 环境下搭建 PHP 开发环境的步骤。
0x01 安装 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
0x02 安装必要的一些软件
brew install wget
brew install autoconf
brew install openssl
0x03 安装 Nginx
brew install nginx
0x04 安装 MySQL
brew install mysql
0x05 安装 php72
brew install php72
0x06 配置
配置 php-fpm 权限
打开
/usr/local/etc/php/7.2/php-fpm.d/www.conf
并找到user = _www
和group = _www
,应该就是相邻的两行,将user = _www
的_www
替换成自己的用户名,比如笔者用户名为ismdeep
,则这一行就替换成user = ismdeep
即可。注意:这里的group = _www
是不需要修改的。用户名如何看? 打开终端,然后输入
whoami
即可。配置 nginx 站点
配置前,你需要想好一个用于测试的域名。这个域名当然不用去域名注册商注册。你只需要一个本地的一个名称即可。笔者推荐使用
.test
作为后缀。虽然我看网上也有教程教大家安装 dnsmaq 然后配置所有.dev
后缀的域名都指向本地127.0.0.1
IP. 但是笔者觉得这样做并不好,两个原因:1. 多安装了一个软件;2..dev
后缀域名在 Chrome 浏览器中会自动定向到 https嗨呀,想个名字好难呀。这里笔者以
firstwebsite.test
作为用于测试的域名。第一步,修改
/etc/hosts
文件。在最后添加127.0.0.1 firstwebsite.test
注意:IP 与域名之间用 tab 键进行分割。空格可能会有问题。 至于域名配置是否成功可以打开终端输入ping firstwebsite.test
测试一下。如果返回是127.0.0.1
那么说明配置是成功的。第二步,你需要确定你的 php 代码所存放的目录。比如这里笔者写了一个简单的 php 程序放在了
/Users/ismdeep/Data/firstwebsite
第三步,通过命令行进入
/usr/local/etc/nginx/servers
目录。然后在其中添加文件firstwebsite
,并输入一下文本至firstwebsite
server { listen 80; server_name firstwebsite.test; root /Users/ismdeep/Data/firstwebsite; location / { index index.php index.html; autoindex on; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
第四步,重启 php-fpm 和 nginx
sudo killall php-fpm sudo php-fpm -D sudo /usr/local/Cellar/nginx/1.17.9/bin/nginx -s quit sudo /usr/local/Cellar/nginx/1.17.9/bin/nginx
第五步,打开浏览器并访问
firstwebsite.test
0x06 启动 & 关闭命令
- php-fpm
- 启动
sudo killall php-fpm
- 停止
sudo /usr/local/Cellar/php@7.2/7.2.29/sbin/php-fpm -D
- 启动
- nginx
- 启动
sudo /usr/local/Cellar/nginx/1.17.9/bin/nginx
- 停止
sudo /usr/local/Cellar/nginx/1.17.9/bin/nginx -s quit
- 启动
- mysql
- 启动
brew services start mysql
- 停止
brew services stop mysql
- 重启
brew services restart mysql
- 启动
提示: 以上命令中使用了绝对路径的调用方式。这是笔者一个执行程序的习惯。你可以把对应的目录加入到 PATH
环境变量中。
软件对应的版本号可能会随着本文发布之后的时间推移会有所变化。