本文章尝试说明Nginx在winds系统下的安装和配置(PHP)。
关于Linux下Nginx的安装和配置:Nginx的安装与配置(PHP)
虽然是写nginx但是作为基础先安装php(会的人可以无视)
下载 PHP:PHP
选择合适的版本下载(我选择的32位的PHP5.6)
下载成功后 解压文件(我的解压路径为D:\work\php)
解压后在文件夹中找到php.ini-development
文件复制一份并改名为php.ini
在php.ini
中找到extension_dir
项目,取消注释并赋值为”./ext”:
改动后:
(注意删除前边的;
)
在php.ini
中找到cgi.fix_pathinfo
项目,取消注释。
改动后:
cgi.fix_pathinfo
是用来设置在cgi模式下PHP是否提供PATH_INFO信息。
因为nginx默认不会设置PATH_INFO的值,所以需要通过上面的方法来提供。
Nginx下载:Nginx
选择一个合适的版本下载(图中红框位置为最新版)。
下载后 解压文件(我的解压路径为D:\work\nginx)
上面是解压后的目录。
点击 nginx.exe**启动**nginx
打开cmd,输入:
:: tasklist显示进程,/fi筛选器,""中为映像名称等于nginx.exe
tasklist /fi "imagename eq nginx.exe"
nginx正常启动的情况下:
(其实任务管理器的服务标签页也可以显示)
这时在浏览器中输入localhost
就能看到nginx的欢迎页面:
接下来**配置**Nginx。
在Nginx的目录下的conf目录下打开nginx.conf
.
做以下修改:
#user nobody;
worker_processes 1;
# 打开log
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# 打开log
access_log logs/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
# 打开log
access_log logs/host.access.log;
location / {
# 设置网站的根目录(类似Apache的www目录)
# 这个路径自己定义就行,下面的是我自己的路径
root D:/work/www;
# 把index.php添加到默认首页,就是输入/时自动打开/index.php
index index.html index.htm index.php;
}
# 打开404页面(可以不动)
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# 配置FastCGI,PHP 脚本请求全部转发到 FastCGI处理
location ~ \.php$ {
#
root D:/work/www;
# 设置监听端口
fastcgi_pass 127.0.0.1:9000;
# 设置nginx的默认首页文件(上面已经设置过了,可以删除)
fastcgi_index index.php;
# 设置脚本文件请求的路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 引入fastcgi的配置文件
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
}
上面所有改动的地方都加上了中文注释,其他地方没有动。
之后**启动**php-cgi和Nginx
先双击nginx.exe启动Nginx
然后打开cmd输入如下,启动php-cgi
:: 打开cgi -b指定端口 -c指定php.ini的位置
D:/work/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/work/php/php.ini
这是我们可以测试一下启动是否成功。
在网站根目录下新建一个php文件:(例如我的是:phpinfo.php)
phpinfo();
然后打开浏览器进入网址localhost/phpinfo.php
如果成功会进入如下页面:
环境就成功搭建完了。
为了节省时间可以用批处理来打开/关闭Nginx和php-cgi,
网上有很多方法,但是要用到RunHiddenConsole(用来隐藏CMD命令窗),很小随便下一个就行,网上有的是。
REM REM是bat文件的注释类似于php的//
REM 设置不输出命令
@ECHO off
REM 设置Nginx和php-cgi的目录
SET php_home=D:/work/php/
SET nginx_home=D:/work/nginx/
REM 输出状态
ECHO Starting PHP FastCGI...
REM 启动php-cgi -b 端口 -c php.ini位置
REM %php_home%为获取上面set的php_home的值
RunHiddenConsole %php_home%php-cgi.exe -b 127.0.0.1:9000 -c %php_home%php.ini
REM 输出状态
ECHO Starting nginx...
REM 启动Nginx -p Nginx的根目录
RunHiddenConsole %nginx_home%nginx.exe -p %nginx_home%
@ECHO off
ECHO Stopping nginx...
REM 结束进程 /F 强制终止 /IM 指定的进程
TASKKILL /F /IM nginx.exe
ECHO Stopping PHP FastCGI...
TASKKILL /F /IM php-cgi.exe
REM 关闭窗口
EXIT
这样两个快速启动/停止的批处理文件就完成了。
需要用时双击批处理文件就可以。