Windows下的Nginx安装与配置(PHP)

xiaoxiao2021-02-27  262

写在前面

本文章尝试说明Nginx在winds系统下的安装和配置(PHP)。

关于Linux下Nginx的安装和配置:Nginx的安装与配置(PHP)

PHP的安装和配置

安装PHP

虽然是写nginx但是作为基础先安装php(会的人可以无视)

下载 PHP:PHP

选择合适的版本下载(我选择的32位的PHP5.6)

下载成功后 解压文件(我的解压路径为D:\work\php)

配置PHP

解压后在文件夹中找到php.ini-development文件复制一份并改名为php.ini

给PHP指定可加载扩展模块的位置。

在php.ini中找到extension_dir项目,取消注释并赋值为”./ext”:

改动后:

(注意删除前边的;)

然后让PHP和Nginx联动。

在php.ini中找到cgi.fix_pathinfo项目,取消注释。

改动后:

cgi.fix_pathinfo是用来设置在cgi模式下PHP是否提供PATH_INFO信息。

因为nginx默认不会设置PATH_INFO的值,所以需要通过上面的方法来提供。

Nginx的安装和配置

Nginx下载:Nginx

选择一个合适的版本下载(图中红框位置为最新版)。

下载后 解压文件(我的解压路径为D:\work\nginx)

上面是解压后的目录。

conf 配置目录log 日志目录html 默认的网站根目录(类似Apache的www目录)temp 缓存目录

点击 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)

<?php phpinfo();

然后打开浏览器进入网址localhost/phpinfo.php

如果成功会进入如下页面:

环境就成功搭建完了。

关于使用批处理快速启动

为了节省时间可以用批处理来打开/关闭Nginx和php-cgi, 网上有很多方法,但是要用到RunHiddenConsole(用来隐藏CMD命令窗),很小随便下一个就行,网上有的是。

把下载的RunHiddenConsole.exe和批处理文件放在同一目录里。编辑启动的批处理文件(start.bat) 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% 编辑停止的批处理文件(stop.bat) @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

这样两个快速启动/停止的批处理文件就完成了。

需要用时双击批处理文件就可以。

转载请注明原文地址: https://www.6miu.com/read-9905.html

最新回复(0)