Nginx+php+MySql(win sercer2012)

我的博客:https://blog.thuol.com

说明

亲测原稿。以 D:\wnmp 目录为例(实际目录可自行更改)

准备

软件包下载地址

Nginx官网:http://nginx.org/
Mysql官网:https://www.mysql.com/
PHP官网:http://www.php.net/

本教程使用软件

nginx-1.11.6.zip
mysql-5.7.16-winx64.zip
php-5.6.28-nts-Win32-VC11-x64.zip
RunHiddenConsole.exe (后台以cgi启动nginx+php使用,没找到官网,自行百度下载)

php版本说明

non-thread-safe 非线程安全 与IIS 搭配环境
thread-safe 线程安全与apache 搭配的环境
php还有 VC6 VC9版本 区分VC6和VC9一个支持apache一个支持IIS
VC9 用在apache上也没问题
如果是以FastCGI方式(搭配IIS、nginx)来执行PHP ,都建议下载、执行 non-thread safe 版本的 PHP

在D盘建立wnmp目录并在wnmp目录下建立 nginx, mysql, php-5.6, www目录,将软件解压到对应目录下。(D:\wnmp\www为代码目录)

安装Nginx

  1. 进入D:\wnmp\nginx目录下,双击运行nginx.exe文件。然后用浏览器打开http://localhost/ 出现Welcome to nginx! 成功。

安装PHP

  1. 进入D:\wnmp\php-5.6目录将php.ini-development复制一份改名为php.ini


  2. 打开D:\wamp\php-5.6\php.ini文件 搜索extension_dir = "ext",修为如下
extension_dir = "d:/wnmp/php-5.6/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_mysqli.dll 去掉前面的“;”(支持MYSQL数据库)

extension=php_mysql.dll
extension=php_mysqli.dll 

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

  1. 进入D:\wnmp\nginx\conf目录,打开修改nginx.conf文件
    1)大概第43~45行之间的内容



    修改如下

location / {
            root   D:/wnmp/www;
            index  index.html index.htm inde.php;
        }

2)支持php的设置,大概在第65-71行的


先将前面的“#”去掉,同样将root html;改为root D:/wnmp/www;。再把“/scripts”改为“document_root”就是指前面“root”所指的站点路径,修改完成如如下

        location ~ \.php$ {
            root           D:/wnmp/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
  1. 在D:\wnmp\www目录内新建1.php文件,并写入
<?php 
        phpinfo();
?>

进入D:\wnmp\php-5.6目录,安装shift键点击右键 在此处打开命令窗口 输入以下命令行启动php(命令窗口不能关闭,属于前台运行模式)

php-cgi.exe -b 127.0.0.1:9000-c D:\wnmp\php-5.6\php.ini


进入D:\wnmp\nginx 安装shift键点击右键 在此处打开命令窗口 输入以下命令行重启动nginx(命令窗口不能关闭,属于前台运行模式)

nginx.exe -s stop    #停止nginx
nginx.exe            #启动nginx


使用浏览器打开http://localhost/1.php

  1. nginx-php小工具
    将RunHiddenConsole.exe文件复制到nginx根目录下(D:\wnmp\nginx)



    在D:\wnmp\nginx目录内新建文本文件粘贴以下内容(注意路径)

cls 
@ECHO OFF 
SET NGINX_PATH=D: 
SET NGINX_DIR=D:\wnmp\nginx\
color 0a 
TITLE Nginx Management  
GOTO MENU 
:MENU 
CLS 
ECHO. 
ECHO. * * * *  Nginx Management  * * * * * * * * * * * 
ECHO. * * 
ECHO. * 1 启动Nginx * 
ECHO. * * 
ECHO. * 2 关闭Nginx * 
ECHO. * * 
ECHO. * 3 重启Nginx * 
ECHO. * * 
ECHO. * 4 退 出 * 
ECHO. * * 
ECHO. * 5 启动Nginx-PHP环境 * 
ECHO. * * 
ECHO. * 6 关闭Nginx-PHP环境 * 
ECHO. * * 
ECHO. * * * * * * * * * * * * * * * * * * * * * * * * 
ECHO. 
ECHO.请输入选择项目的序号: 
set /p ID= 
IF "%id%"=="1" GOTO cmd1 
IF "%id%"=="2" GOTO cmd2 
IF "%id%"=="3" GOTO cmd3 
IF "%id%"=="5" GOTO cmd5
IF "%id%"=="6" GOTO cmd6
IF "%id%"=="4" EXIT 
PAUSE 
:cmd1 
ECHO. 
ECHO.启动Nginx...... 
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在 
%NGINX_PATH% 
cd %NGINX_DIR% 
IF EXIST %NGINX_DIR% start %NGINX_DIR%nginx.exe 
ECHO.OK 
PAUSE 
GOTO MENU 
:cmd2 
ECHO. 
ECHO.关闭Nginx...... 
taskkill /F /IM nginx.exe > nul 
ECHO.OK 
PAUSE 
GOTO MENU 
:cmd3 
ECHO. 
ECHO.关闭Nginx...... 
taskkill /F /IM nginx.exe > nul 
ECHO.OK 
GOTO cmd1 
GOTO MENU
:cmd5 
ECHO. 
ECHO.启动Nginx-PHP环境......
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000 
echo Starting PHP FastCGI...
RunHiddenConsole D:/wnmp/php-5.6/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php-5.6/php.ini
echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
PAUSE 
GOTO MENU
:cmd6 
ECHO. 
ECHO.关闭Nginx-PHP环境......
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
PAUSE 
GOTO MENU

并改名为 Nginx管理工具.bat (后缀也要改),双击打开(这时候可以关闭刚才的命令框了)

  1. nginx支持thinkphp配置(按需要设置)
server {
        listen       80 ;
        server_name localhost;
        root   d:/wnmp/www;
        index  index.html index.htm index.php;
        
        error_page  404 /404.html;
        location = /404.html {
            return 404 'Sorry, File not Found!';
        }
        
        location / {
            try_files $uri @rewrite;
        }
        
        location @rewrite {
            set $static 0;
            if  ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
                set $static 1;
            }
            if ($static = 0) {
                rewrite ^/(.*)$ /index.php?s=/$1;
            }
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ /Uploads/.*\.php$ {
            deny all;
        }
        location ~ \.php/ {
           if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
           fastcgi_pass 127.0.0.1:9000;
           include fastcgi_params;
           fastcgi_param SCRIPT_NAME     $1;
           fastcgi_param PATH_INFO       $2;
           fastcgi_param SCRIPT_FILENAME $document_root$1;
        }
        
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            #root           d:/wnmp/www;
            fastcgi_pass   127.0.0.1:9000;
            #fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /\.ht {
          deny  all;
        }
    }

安装Mysql

  1. 进入D:\wnmp\mysql,复制my-default.ini文件并改名为my.ini。
    在D:\wnmp\mysql目录下创建data文件夹,打开my.ini修改如下内容
basedir = D:\wnmp\mysql
datadir = D:\wnmp\mysql\data
port = 3306
  1. 进入D:\wnmp\mysql\bin目录下按着shift键点右键, 在此打开命令窗口,(注意必须以管理员身份打开,否则报错。如果不是管理员请以管理员身份打开cmd并进入D:\wnmp\mysql\bin目录)
    输入以下命令初始化mysql
mysqld --initialize --user=mysql --console    

记录下红色框内的初始密码(密码前面是没有空格的)


执行下面命令将MySQL添加到系统服务

mysqld --install MySQL

执行下面命令启动myslq

net start mysql
  1. 进入myslq修改初始密码(进入需要刚才记录的密码)
mysql -u root -p

更改密码

set password for root@localhost = password('123456'); (注意分号)
  1. 创建其他用户
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

添加访问ip,%号代表所有IP都能访问

GRANT GRANT OPTION ON *.* TO '账号'@'%';

添加权限(所有权限)

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO '账号'@'%';
  1. mysql 常用命令
net start mysql     #启动myslq服务
net stop mysql      #停止mysql服务

mysql管理小工具
在D:\wnmp\mysql目录下新建一个文本粘贴如以下内容(自己也可以修改注意路径)

cls 
@ECHO OFF 
SET Mysql_PATH=D: 
SET Mysql_DIR=D:\wnmp\mysql\bin
color 0a 
TITLE Mysql Management  
GOTO MENU 
:MENU 
CLS 
ECHO. 
ECHO. * * * *  Mysql Management  * * * * * * * * * * * 
ECHO. * * 
ECHO. * 1 启动Mysql * 
ECHO. * * 
ECHO. * 2 关闭Mysql * 
ECHO. * * 
ECHO. * 3 重启Mysql * 
ECHO. * * 
ECHO. * 4 退 出 * 
ECHO. * * 
ECHO. * * * * * * * * * * * * * * * * * * * * * * * * 
ECHO. 
ECHO.请输入选择项目的序号: 
set /p ID= 
IF "%id%"=="1" GOTO cmd1 
IF "%id%"=="2" GOTO cmd2 
IF "%id%"=="3" GOTO cmd3 
IF "%id%"=="4" EXIT 
PAUSE 
:cmd1 
ECHO. 
ECHO.启动Mysql...... 
cd %Mysql_DIR% 
net start mysql
PAUSE 
GOTO MENU 
:cmd2 
ECHO. 
ECHO.关闭Mysql...... 
cd %Mysql_DIR% 
net stop mysql
PAUSE 
GOTO MENU 
:cmd3 
net stop mysql
net start mysql 
PAUSE 
GOTO MENU

改名字为 Mysql管理工具.bat (后缀也要改),然后双击打开(需要管理员权限)

增加PHP扩展,以redis为例(其他扩展大致相仿按需添加)

php扩展官方地址http://pecl.php.net/

  1. 下载redis的DLL文件(注意php版本)
    解压后复制php_redis.dll文件到D:\wnmp\php-5.6\ext目录下
  2. 打开D:\wnmp\php-5.6下php.ini文件,添加以下代码
extension=php_memcache.dll
  1. 重启nginx-php浏览器里打开http://localhost/1.php
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容

  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,202评论 5 124
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 1,804评论 0 3
  • 我的博客:https://blog.thuol.com 说明 亲测原稿。以 D:\wamp 目录为例(实际目录...
    00天火00阅读 685评论 1 2
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,702评论 0 11
  • 第三章 承诺和一致 去上海路上,大巴,至今接受不了公司没公车。 路上刚看的这段,让我颇多感触。 人人都有一种言行一...
    JulieZhu阅读 455评论 0 0