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

操作流程概览:
1.PHPstorm把项目从svn导到本地
2.下载安装mysql数据库,新建一个数据名为localdb
3.用Navicat的数据传输功能,把服务器的数据库导到本地的localdb,作为本地的测试数据库
4.打开项目的配置文件config.php,修改数据库连接的地址、账号、密码为本地数据库的相关信息。
5.下载Nginx和PHP,修改其配置,用于启动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,双击后一个黑色的弹窗一闪而过
Windows环境下用 Nginx + php 运行项目_第1张图片
②也可以在cmd窗口下切换到E:\nginx-1.6.3,输入命令nginx.exe或者start nginx,回车即可

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

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

Windows环境下用 Nginx + php 运行项目_第2张图片

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

Windows环境下用 Nginx + php 运行项目_第3张图片

3.配置启动PHP

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

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

修改这段代码:

这里写图片描述

  • root修改成项目根目录
  • index增加index.php.修改后:
 location / {
            root  D:/PHPworkspace/kjb;
            index  index.html index.htm index.php;
            } 
        }

修改这段代码以支持PHP:

Windows环境下用 Nginx + php 运行项目_第4张图片

  • 把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

Windows环境下用 Nginx + php 运行项目_第5张图片

重新启动nginx.exe,

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

Windows环境下用 Nginx + php 运行项目_第6张图片

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

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

所以location最终的设置如下:

Windows环境下用 Nginx + php 运行项目_第7张图片

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

至此,PHP项目启动成功!


参考内容:
【1】https://blog.csdn.net/lsm135/article/details/51812240

你可能感兴趣的:(PHP项目)