看过我之前文章的朋友都知道,不管是日常使用,还是当做本地开发环境,我都喜欢使用macOS作为桌面系统,之前是用黑苹果,入职新公司之后,现在终于用上了白苹果,也算是对得起乔老爷子了哈哈哈。
作为一个PHP老菜鸟,以前用Windows的时候,都是用的phpStudy作为PHP运行环境,现在要用macOS作为开发平台,找了一圈没有一个有phpStudy那么方便的PHP本地运行环境,唯一一个好用点的MAMP PRO还死贵死贵的,没办法,要吃饭,虽然有困难,但还是要想办法解决,折腾了一圈各种带图形化界面的包,最终还是回到了命令行,还是用brew安装各个组件好使。
讲道理,MAMP PRO是真心好使,用了一段时间没发现什么大毛病,只是试用期之后价格有点肉疼,我又不想使用那些什么key gen工具,不用想,十有八九都有问题,也不想太折腾,算了,还是敲命令自己装吧,于是才有了这么一篇折腾笔记。
macOS安装Nginx、PHP、MySQL
因为我们使用的开发框架对PHP版本有要求,在PHP7.1环境下运行最合适,所以我这里安装的是PHP7.1,安装命令如下:
brew install nginx mysql php71
安装好之后,把PHP相关命令添加到PATH,方便于命令行下访问:
echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.zshrc
相关配置文件
brew安装的Nginx配置文件:
/usr/local/etc/nginx/nginx.conf
Nginx网站配置文件目录:
/usr/local/etc/nginx/servers/
默认网站文件目录:
/usr/local/var/www
PS:brew安装的Nginx,如果没有更改配置文件的话,默认是运行在8080端口,启动Nginx之后,访问127.0.0.1:8080即可看到默认页面。
PHP相关配置文件路径:
/usr/local/etc/php/7.1/
Nginx、PHP-FPM、MySQL安装后相关配置
因为我是用来本地开发,所以我打算将网站目录放到我当前使用的用户目录下,也就是/User/username/www下,所以还需要将Nginx和PHP-FPM的配置相应更改下,网站相关程序才有写入权限。
Nginx相关配置
首先是更改Nginx的运行用户:
vim /usr/local/etc/nginx/nginx.conf
user username staff;
worker_processes auto;
PHP-FPM相关配置:
vim /usr/local/etc/php/7.1/php-fpm.d/www.conf
user = username
group = username
将上述username替换当前登录的用户名。
MySQL相关配置
安装MySQL之后,我们还需要进行一些初始化相关设置,首先,启动MySQL服务,然后执行如下命令:
mysql_secure_installation
运行之后,可以根据提示,设置root密码、关闭远程登录、移除匿名用户、删除测试数据库等操作,根据提示输入或者回车就好了。
执行完之后,可以使用如下命令进行登录MySQL数据库:
mysql -u root -p
Nginx、PHP-FPM、MySQL相关命令
其实和别的brew安装的软件差不多,都可以用下面的命令开启、重启、停止相关进程:
Nginx启动、重启、停止:
sudo nginx
sudo nginx -s reload
sudo nginx -s stop
PHP-FPM启动、重启、停止:
brew services start php@7.1
brew services restart php@7.1
brew services stop php@7.1
MySQL启动、重启、停止:
brew services start mysql
brew services restart mysql
brew services stop mysql
测试Nginx配置文件是否正确:
sudo nginx -t
macOS系统Nginx新增Server
上面说了,Nginx的Server配置目录在/usr/local/etc/nginx/servers/,我们只需要到如下目录相关配置文件就行了。如下是一个网站配置文件示例:
vim /usr/local/etc/nginx/servers/test.conf
server {
listen 80;
server_name test.com;
index index.html index.php;
access_log /usr/local/var/log/nginx/test.access.log;
error_log /usr/local/var/log/nginx/test.error.log;
root /Users/zoco/temp/laravel/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 300;
fastcgi_keep_conn on;
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
index index.html index.php;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
到目前为止,整个macOS的MAMP开发环境就配置好了,折腾前感觉挺麻烦的,配置完发现,感觉跟Linux下配置LNMP差不多啊哈哈哈。
happy coding。