Windows下配置nginx+php(wnmp)

Windows下配置nginx+php(wnmp) - waynewuzhenbo - 博客园  http://www.cnblogs.com/wuzhenbo/p/3493518.html


Windows下配置nginx+php(wnmp)

第一部分:准备工作。(系统:Windows 8.1, win10+php5.5+nginx1.11测试成功)

1.首先是下载软件。

NGINX-1.3.8官网下载:http://nginx.org/en/download.html

PHP5.4.8版本下载地址:http://windows.php.net/download/

Mysql5.5.28版本下载地址:http://www.mysql.com/downloads/mysql/

2.安装mysql软件。

 

3.解压NGINX和PHP到你自己安装位置。这里我在C盘新建一个文件夹:wnmp(windows,ngnix,myspq,php),把下面的软件安装到这个文件夹里面。

NGINX目录C:\wnmp\nginx

PHP目录C:\wnmp\php

 

第二部分:安装nginx

1.打开C:\nginx目录,运行该文件夹下的nginx.exe

2.测试是否启动nginx。打开浏览器访问http://localhost 或 http://127.0.0.1,看看是否出现“Welcome to nginx!”,出现的证明已经启动成功了。没有启动的话,看看80端口有占用没。

注意:该网站的默认目录在“C:\wnmp\nginx\htm”l下

 

第三部分:安装php(这里主要讲nginx配置启动php,以cgi运行php)

nginx配置文件是conf文件夹里的nginx.conf

1.修改大概第43~45行之间的

 

            location /{
            root   html;
            index  index.html index.htm;}

 

修改网站文件的路径,以及添加index.php的默认页。

        location / {
            root   D:/wnmp/nginx-1.5.8/html;
            index  index.html index.htm inde.php;
        }

 

2.支持php的设置

 

修改大概在第63-71行的

复制代码
        # 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  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
复制代码

 

先将前面的“#”去掉,同样将root  html;改为root  C:/wnmp/nginx-1.5.8/html;。再把“/scripts”改为“$document_root”(重要),这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:

复制代码
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        
        location ~ \.php$ {
            root           C:/wnmp/nginx-1.5.8/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
复制代码

 

3.C:\wnmp\php\ext(即php安装目录)修改php.ini-development文件,将文件名修改为php.ini,打开php配置文件php.ini,保存即可。  (按照下面修改即可)

搜索“extension_dir”,找到: e;xtension_dir = "ext" 先去前面的分号再改为 extension_dir = "C:\wnmp\php\ext"

搜索“date.timezone”,找到:;date.timezone = 先去前面的分号再改为 date.timezone = Asia/Shanghai

搜索“enable_dl”,找到:enable_dl = Off 改为 enable_dl = On

搜索“cgi.force_redirect” ;cgi.force_redirect = 1 先去前面的分号再改为 cgi.force_redirect = 0

搜索“fastcgi.impersonate”,找到: ;fastcgi.impersonate = 1 去掉前面的分号

搜索“cgi.rfc2616_headers”,找到:;cgi.rfc2616_headers = 0 先去前面的分号再改为 cgi.rfc2616_headers = 1

 

搜索“php_mysql”,找到:”extension=php_mysql.dll和extension=php_mysqli.dll  去掉前面的“;”extension=php_mysql.dll和extension=php_mysqli.dll   (支持MYSQL数据库)(本来php安装目录的ext目录下就有这几个dll, 所以可以放心修改)

 

其他的配置请按照自己的需求更改。

 

第三部分试运行以及编辑运行配置文件

C:\wnmp\php-5.5.7-nts-Win32-VC11-x86>php-cgi.exe -b 127.0.0.1:9000 -c C:\wnmp\php-5.5.7-nts-Win32-VC11-x86\php.ini(如果修改的php.ini还是在php安装目录的根目录, 则可以省略掉加粗文字)

重新运行nginx.exe。(任务管理器结束进程然后再运行nginx.exe即可)

 

 

C:\wnmp\nginx-1.5.8\html下新建一个phpinfo.php,

<?php phpinfo(); ?>

 

访问http://localhost/phpinfo.php

或者http://127.0.0.1/phpinfo.php

出现如下的信息就说明php已经成功安装:

 


三. 碰到的问题

1. No log handling enabled - turning on stderr logging

启动php-cgi过程中,如果报出这个错误,请把php.ini配置文件中的extension=php_snmp.dll注释掉。

2. 端口占用

Cannot bind/listen socket - [2] No such file or directory.

Couldn't create FastCGI listen socket on port 127.0.0.1:9000

启动php-cgi过程中,如果报类似这种错误,就表示9000端口被占用了,此时,我们可以换个端口试试。

3. 反向代理404 not found

以反向代理的方式访问php时,出现404 Not Found错误,这种情况,我们需要修改nginx的error_page配置项,如下:

将原来默认的error_page注释掉

[plain]  view plain  copy
  1. #error_page  404              /404.html;  

然后,重新定义error_page,如下:

[plain]  view plain  copy
  1. error_page 404 @proxy;  

@proxy对应的内容为:

[plain]  view plain  copy
  1. location @proxy {  
  2.         proxy_set_header Host $http_host;  
  3.         proxy_set_header X-Real-IP $remote_addr;  
  4.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  5.   
  6.         proxy_pass http://127.0.0.1;  
  7.     }  

保存后,重启nginx即可解决404 Not Found错误。

友情提醒:以反向代理的方式访问php时,就不需要配置php-cgi模块了。




(如果不介意上面通过cmd运行php-cgi.exe, nginx.exe, 可以看下面教程)

下载一个RunHiddenConsole.exe,百度网盘

开启php-cgi和nginx.exe,保存为start.bat

 

@echo off
echo Starting PHP FastCGI...
C:\wnmp\nginx\RunHiddenConsole.exe C:\wnmp\PHP\php-cgi.exe -b 127.0.0.1:9000-c D:\PHP\php.ini
echo Starting nginx...
C:\wnmp\nginx\RunHiddenConsole.exe D:/nginx/nginx.exe -p D:/nginx

 

 

停止php-cgi和nginx.exe,保存为stop.bat

复制代码
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
复制代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows系统中,配置Nginx与Tomcat项目需要进行以下详细配置。 首先,要确保已经正确安装并配置Nginx与Tomcat。然后,在Nginx配置文件(一般为nginx.conf)中,需要进行如下配置: 1. 配置Nginx与Tomcat的反向代理关系。可以在Nginx的http部分中加入如下代码: ``` location / { proxy_pass http://localhost:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` 这里将Nginx的80端口与Tomcat的8080端口建立反向代理关系。 2. 配置虚拟主机。如果需要配置多个Tomcat项目,可以通过虚拟主机来实现。在Nginx的http部分中添加如下代码: ``` server { listen 80; server_name your_domain_name; location / { proxy_pass http://localhost:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 这里的"your_domain_name"替换为你的域名,配置不同的域名可以区分不同的Tomcat项目。 接下来,需要配置Tomcat的服务器。在Tomcat的server.xml中,进行如下配置: 1. 配置连接器。添加如下代码: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 这里的端口号可以根据需要进行调整。 2. 配置虚拟主机。如果需要配置多个Tomcat项目,可以通过虚拟主机来实现。添加如下代码: ``` <Host name="your_domain_name" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="your_application_path" /> </Host> ``` 这里的"your_domain_name"替换为你的域名,"your_application_path"替换为你的项目路径。 配置完成后,保存文件并重新启动Nginx与Tomcat。现在,Nginx将可以通过80端口访问Tomcat项目,而Tomcat将通过8080端口提供服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值