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,双击后一个黑色的弹窗一闪而过
②也可以在cmd窗口下切换到E:\nginx-1.6.3,输入命令nginx.exe或者start nginx,回车即可
2)测试是否启动nginx。打开浏览器访问http://localhost时发现是错误页面,琢磨着是80端口被占用了,改成90端口了,操作如下:
修改文件:E:\nginx-1.6.3\conf\nginx.conf:
在浏览器中输入:http://localhost:90,发现网页启动成功
3.配置启动PHP
主要是nginx配置启动php,以cgi运行php。
修改文件:E:\nginx-1.6.3\conf\nginx.conf:
修改这段代码:
index增加index.php.修改后:
location / {
root D:/PHPworkspace/kjb;
index index.html index.htm index.php;
}
}
修改这段代码以支持PHP:
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
重新启动nginx.exe,
在浏览器输入http://localhost:90,可以发现项目已经启动了。
点击首页的链接时,发现跳转的页面全是404,找了一下,说是在nginx.conf里要加上这段代码:
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
所以location最终的设置如下:
再次输入http://localhost:90,发现打开的页面都是正常的了。
至此,PHP项目启动成功!
转:https://blog.csdn.net/weixin_41782253/article/details/82706617