配置Windows+Nginx+MySQL+PHP备忘

!本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本人不保证相应的兼容和可操作性。

Nginx实际主要还是部署运行于Linux之下的,本文仅介绍在Windows下的开发环境部署,适用于开发人员。

1.准备安装包

除了Windows系统外,我们还需额外下载Nginx、MySQL和PHP的程序包,相关资源地址列表如下:

Nginx
http://nginx.org/en/download.html

MySQL
http://www.mysql.com/downloads/

PHP
http://windows.php.net/download/

2.安装部署

我们这里主要选择磁盘D,作为目的磁盘。第一步将Nginx解压至D:\Nginx路径下;第二步双击安装MySQL,选择开发模式安装;第三步将PHP解压至D:\PHP。

3.更新配置

配置PHP,进入PHP的安装目录D:\PHP,找到php.ini,如果没有的话请把php.ini-recommended改为php.ini,然后修改下面几项:

1
2
3
4
5
6
7
error_reporting = E_ALL
display_errors = On
extension_dir = "D:\PHP\ext"
; CGI 设置
cgi.force_redirect = 1
cgi.fix_pathinfo = 1
cgi.rfc2616_headers = 1

如果需要加载扩展,请去掉相应的扩展extension前面的分号。
比如我们需要加载PDO MySQL扩展,只需要将相应的设置更改如下:

1
2
extension = php_pdo.dll
extension = php_pdo_mysql.dll

配置PHP的FastCGI
打开命令提示符,切换至PHP的安装目录下,然后运行下面的命令:

1
D:/PHP/php-cgi.exe -b 127.0.0.1:9000 -c D:/PHP/php.ini

需要注意的是9000为相应的端口号,请确保不被占用,或者选用其他端口号。

我们可以通过将上面的命令建立批处理或者使用srvany.exe方便我们加载php-cgi.exe,关于srvany的使用方法可以参考这篇文章

这些都完成后我们可以启动php-cgi.exe,稍后完成下面的步骤。

配置Nginx
打开Nginx的配置文件D:\Nginx\conf\nginx.conf,部分修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
location / {
    root   D:/wwwroot;
    index  index.php index.html index.htm;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#   root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  D:/wwwroot$fastcgi_script_name;
    include        fastcgi_params;
}

D盘下的wwwroot作为我们存放php测试脚本的地方,注意这里路径建议使用’/’分隔,否则最好采用转义模式,比如“D:\\wwwroot”。配置完成后可以采用srvany.exe将Nginx作为后台服务运行
然后建立index.php文件,内容如下:

1
<?php phpinfo();?>

放入D:\wwwroot,然后打开浏览器输入http://localhost/index.php,就可以看到效果了。

有时可能需要更改默认的80端口,你只需要打开Nginx的配置文件D:\Nginx\conf\nginx.conf,将其中的listen 80;改成你所需要的端口号就可以了。

若无特别说明,本网站文章均为原创,原则上这些文章不允许转载,但是如果阁下是出于研究学习目的可以转载到阁下的个人博客或者主页,转载遵循创作共同性“署名-非商业性使用-相同方式共享”原则,请转载时注明作者出处谢绝商业性、非署名、采集站、垃圾站或者纯粹为了流量的转载。谢谢合作!

    • @张俊
      我这个是实验环境的配置,生产环境的配置域名应该是改server {server_name},如:
      server {
      listen 192.168.56.78:80; # 服务器的公网IP(192.168.56.78)及端口(80)
      server_name example.com; # 这里填域名
      }

请稍后...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*