nature book bug burger costumes doctors hospital office shoes skull rocket

Windows 下配置 Nginx + PHP + MySQL

由于有时候使用 Windows 系统,发现支持 Nginx 的 PHP 集成环境极少,或者就是有明显 BUG。故而分开单独安装,写一篇文章记录安装配置问题。

软件准备:

  1. 在 Nginx 官网下载 Nginx for Windows 32位程序
  2. 在 PHP 官网下载 PHP for Windows PHP我装了 v5.6 和 v7.1,测试发现 v7.1 是可以向下兼容的。
  3. 在 MySQL 官网下载 MySQL for Windows
  4. 安装和配置 GIT, 下面将使用 git bash 来操作。(如果使用其他 Shell 程序,请忽略这步。)

MySQL 安装及配置

这个安装无难度,全部下一步。注意最后需要设置 root 密码,假设密码先设置为 root,下面根据你们真实的密码设置来。

安装完成之后,托盘会起一个图标,代表程序启动了。
可以在 [开始] - [MySQL] - [MySQL Server 5.7] 里找到 MySQL 的命令行客户端程序。

启动 MySQL 5.7 Command Line Client 以后,会要求输入 root 密码验证身份。

可以输入显示数据库命令,来检查程序是否正确运行:

show databases;

PHP 安装及配置

这个需要解压到指定目录,并且确保 9000 端口未被占用。

解压完成以后,先把 php.ini-development 复制一份,命名为 php.ini。作为之后的 PHP 配置文件。

然后留意根目录下两个程序:

  1. php.exe 是 PHP 的主程序
  2. php-cgi.exe 主要是负责解析 PHP 语法的程序

命令行切换到当前目录下,然后启动 CGI 服务:

./php-cgi.exe -b 127.0.0.1:9000 -c ./php.ini #启动 CGI 并且指定 IP 和 端口,以及配置文件

启动程序以后,这个命令行窗口就 不要关了。另起一个命令行窗口,检查服务是否起来了:

netstat -ano | findstr 9000

如果有显示一条,说明成功了!

Nginx 安装及配置

安装 Nginx 前,请先确保 80 端口未被占用!

解压 Nginx 到指定目录,这里面有两个比较重要的文件:

  1. nginx.exe 文件是主程序
  2. conf/nginx.conf 这个是 Nginx 的配置文件。

我们先备份一下 nginx.conf 文件,复制一份 nginx.defalut.conf 出来。预防之后改坏了。

然后编辑 nginx.conf 文件,修改 server 里的部分。下面省略了部分内容:

http {
  server {
    location ~ \.php$ {  #这里原来注释掉了,要打开,并且修改为如下:
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        try_files       $uri =404;
        root            html;
        fastcgi_pass    127.0.0.1:9000; #设置 PHP-CGI 的服务地址
        fastcgi_index   index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }
  }
}

上面原本的:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
被我注释了,因为在我本地路径不正确,故而改为
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

保存之,启动 Nginx 服务。

启动的方式是,先命令行切到 Nginx 程序根目录,然后执行:

start nginx

或者这样启动,窗口就不能关了:

./nginx

顺便记录 启动、停止、测试、重载 在 Windows 下的命令。(Nginx 下修改配置是不需要重启程序的,只需要 重新载入 配置):

start nginx #启动
nginx -s stop #停止 Nginx
nginx -t #测试配置是否正确
nginx -s reload #重新载入配置

到这里为止,就可以尽情的在 Windows 下学习 PHP 了!

特别感谢 鹏飞 的指点。