macOS系统配置Nginx+PHP+MySQL开发环境

看过我之前文章的朋友都知道,不管是日常使用,还是当做本地开发环境,我都喜欢使用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。