现在的 PHP 开发基本上都是基于 Nginx + PHP-FPM + MySQL 环境来运行的,那么接下来笔者打算来简单介绍一下 macOS 环境下搭建 PHP 开发环境的步骤。

0x01 安装 Homebrew

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

0x02 安装必要的一些软件

1
2
3
brew install wget
brew install autoconf
brew install openssl

0x03 安装 Nginx

1
brew install nginx

0x04 安装 MySQL

1
brew install mysql

0x05 安装 php72

1
brew install php72

0x06 配置

  1. 配置 php-fpm 权限

    打开 /usr/local/etc/php/7.2/php-fpm.d/www.conf 并找到 user = _wwwgroup = _www ,应该就是相邻的两行,将 user = _www_www 替换成自己的用户名,比如笔者用户名为 ismdeep ,则这一行就替换成 user = ismdeep 即可。注意:这里的 group = _www 是不需要修改的。

    用户名如何看? 打开终端,然后输入 whoami 即可。

  2. 配置 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

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      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

      1
      2
      3
      4
      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 环境变量中。

软件对应的版本号可能会随着本文发布之后的时间推移会有所变化。