现在的 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 配置

  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

      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 环境变量中。

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