Windows环境下用 Nginx + php 运行项目

1.软件下载

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

php下载:http://windows.php.net/download

我下载的版本是 nginx-1.6.3 和 php 5.5.12 ,可以根据自己的项目需要选择合适自己的版本。

软件解压位置:

Nginx位置:E:\nginx-1.6.3

PHP位置: E:\PHP\php5.5\php5.5.12

PHP项目根目录:D:\PHPworkspace\kjb

2.Nginx配置

1)启动nginx,有多种方法

①在E:\nginx-1.6.3下直接双击ngin.exe,双击后一个黑色的弹窗一闪而过

01

②也可以在cmd窗口下切换到E:\nginx-1.6.3,输入命令nginx.exe或者start nginx,回车即可

2)测试是否启动nginx。打开浏览器访问http://localhost时发现是错误页面,琢磨着是80端口被占用了,改成90端口了,操作如下:

修改文件:E:\nginx-1.6.3\conf\nginx.conf:

02

在浏览器中输入:http://localhost:90,发现网页启动成功

03

3.配置启动PHP

主要是nginx配置启动php,以cgi运行php。

修改文件:E:\nginx-1.6.3\conf\nginx.conf:

修改这段代码:

04

root修改成项目根目录

index增加index.php.修改后:

location / {
            root  D:/PHPworkspace/kjb;
            index  index.html index.htm index.php;
            } 
        }

修改这段代码以支持PHP:

05

把location代码块的注释(#)去掉,

root后面改成项目根目录,

“/scripts”改为“$document_root”,(“$document_root”就是指前面“root”所指的站点路径)。

修改后这部分代码如下:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
            root           D:/PHPworkspace/kjb;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

修改E:\PHP\php5.5\php5.5.12\ext下的php.ini-development文件,将文件名修改为php.ini,打开php配置文件php.ini:

搜索“extension_dir”,找到: ;extension_dir = “ext” 先去前面的分号再改为 extension_dir = “E:\PHP\php5.5\php5.5.12\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数据库)


搜索关键词 修改前 修改后
extension_dir ;extension_dir = “ext” extension_dir = “E:\PHP\php5.5\php5.5.12\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 fastcgi.impersonate = 1
cgi.rfc2616_headers ;cgi.rfc2616_headers = 0 cgi.rfc2616_headers = 1
php_mysql ;extension=php_mysql.dll extension=php_mysql.dll
php_mysql ;extension=php_mysqli.dll extension=php_mysqli.dll

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

在E:\PHP\php5.5\php5.5.12下运行命令窗口,输入php-cgi.exe -b 127.0.0.1:9000 -c php.ini

06

重新启动nginx.exe,

在浏览器输入http://localhost:90,可以发现项目已经启动了。

07

点击首页的链接时,发现跳转的页面全是404,找了一下,说是在nginx.conf里要加上这段代码:

try_files $uri $uri/ /index.php?$query_string;
            if (!-e $request_filename){  
                rewrite ^/(.*) /index.php last;  
            } 

所以location最终的设置如下:

08

再次输入http://localhost:90,发现打开的页面都是正常的了。

至此,PHP项目启动成功!


转:https://blog.csdn.net/weixin_41782253/article/details/82706617


(1)