Windows下如何本地搭建Nginx+Mysql+php+redis环境

程序员:写代码和写代码的道路上。
咳咳,废话不多说。。

1.文件夹准备:

1.1先在D盘创建一个文件夹development(为了以后软件版本扩展)
2.2在development分别创建 php nginx mysql 文件夹(对应软件放置位置,为了保证你的文件夹没这么乱)
在这里插入图片描述

2.准备安装包:

2.1:Nginx:http://nginx.org/download/nginx-1.10.3.zip
2.2:Php:https://windows.php.net/downloads/releases/archives/php-7.1.1-Win32-VC14-x64
2.3:MySQL:https://dev.mysql.com/get/downloads/mysql/MySQL-5.7/mysql-5.7.20-winx64.zip

Nginx实际上就是一个 Web服务器,是一款免费开源软件,可用作反向代理,负载平衡器和 HTTP缓存等等。相对于Apache、IIS,Nginx的优势在于反向代理和负载均衡(实际上负载均衡是反向代理的作用其中之一,包括动静分离,以及防止原服务器受攻击)。
Nginx安装如下:
1.下载到本地后解压到nginx文件夹内,此时目录路径是D:development/nginx/nginx-1.10.3/
2.执行目录下nginx.exe(执行完无错误就是安装成功,如果失败请检查你80端口是否其他软件占用。例如Apache,博主之前是使用Aapche的,如果你也是记得卸载,如果占用请关闭再重新执行nginx.exe)
2.1查询是否被80端口占用 (nginx需要监听到80端口):
打开windows的doc窗口
然后输入命令:netstat -aon|findstr “80”
在这里插入图片描述
然后找到PID是19236
再操作命令:tasklist|findstr “19236”
在这里插入图片描述
如果发现不是nginx.exe基本都是被占用了,例如,inetinfo.exe(IIS)
杀掉该进程有2种方法:
1.最简单的就是去任务管理器把对应PID号的删掉就好了
2.第二种是命令:taskkill /pid 19236 /F (别删错了!)

好了,到现在Nginx是安装完成了,很简单。
接下来要测试看是否已安装成功。
浏览器打开访问localhost回车
访问这样就是安装成功了,恭喜你!

3.安装PHP环境

1.下载到本地后解压到php文件夹内,此时目录路径是D:development/php/
2.里面有一个php-development.ini 修改为 php.ini
3.编辑php.ini,可以用记事本打开该文件或者其他打开文本的编辑器,修改如下:
; 符号代表注释 去掉注释就说明ini文件会检测这个代码需要执行啦
需要指定php的ext路径。查找:

;extension_dir = "./ext"

更改为

extension_dir = "D:/development/php/ext"

需要支持MySQL,分别去掉他的;符号。查找:

;extension = php_mysql.dll
;extension = php_mysqli.dll

需要支持Nginx。找到:

;cgi.fix_pathinfo=1

去掉前面的分号。这是php的CGI的设置。

其他的配置。找到:
找到:;date.timezone = 改为 date.timezone = Asia/Shanghai。去掉前面的分号
找到:enable_dl = Off改为 enable_dl = On
找到: ;cgi.force_redirect = 1改为 cgi.force_redirect = 0。去掉前面的分号
找到: ;fastcgi.impersonate = 1 。去掉前面的分号
找到:;cgi.rfc2616_headers = 0。改为 cgi.rfc2616_headers = 1。去掉前面的分号
ok至此,你的php.ini已修改完成记得保存。

然后到D:development/nginx1.10.3/conf/下找到nginx.conf,打开编辑页面 (这是nginx的配置文件)

location / {
            root   #(修改成你项目根目录);
           index  index.html index.htm index.php;
                    #主要是这一段一定要确保存在
                    if (!-e $request_filename) {
                        rewrite  ^(.*)$  /index.php?s=/$1  last;
                        break;
                    }
	)
        }

location ~ \.(jpeg|jpg|png|gif){
	proxy_set_header X-Forwarded-For $remote_addr;     (记住:这里必须设置,否则无法得到客户端真实ip,将客户端真实ip包含在头部信息里传输)
	proxy_pass http://静态服务器域名;     (如果是https就改成https,端口号如果不是80记得:端口号。这个是动静分离反向代理,如果有需要可以加)
}

location ~ \.php(.*)$ {			(这个(.*) 是捕捉信息)
            root           #(修改成你项目根目录);
           fastcgi_index  index.php;
                    fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    fastcgi_param  PATH_INFO  $fastcgi_path_info;
                    fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                    include        fastcgi_params;
        }

找到/scripts 替换成$document_root 实际上这里的意思就是你前面root设置的根目录路径

如果你有https需要可以到443端口,老样子把root的路径改一下,前提是需要要ssl证书pem和key否则也是访问失败。同时把index.php加上(博主这次由于没有ssl证书,就没有再详细描述这块了,有机会再更新!)

负载均衡:(有些童鞋可能用不到,设置很简单,但是策略(算法)需要好好研究)
weight: 权重 负载策略里也有种轮询方法,数值越大,表明越容易被分配;
max_fails:链接失败次数;
fail_timeout:链接失败超时时间;
在虚拟服务器外

upstream servername(负载(集群)组名){
	server 域名1:端口 weight=1 max_fails=2 fail_timeout=30s;
	server 域名2:端口 weight=1 max_fails=2 fail_timeout=30s;
}

然后将负载转交的域名地址就改成:http://servername;
负载集群本身不难,主要是策略(算法):比如你要RR(默认),轮询,ip_hash,fair智能调度(第三方),url_hash(第三方),这些很有必要了解,研究的。
ok至此,你的nginx.conf已修改完也记得保存。
接下来就是测试你php是否安装成功,启动相关服务。
doc窗口下进入你php目录
1.D: 进入你的盘符
2.cd development/php
3.php-cgi.exe -b 127.0.0.1:9000 -c D:/development/php/php.ini
4.cd development/nginx
5.start nginx
至此如果没有错误就说明你已开启php和nginx服务。
然后到你根目录下创建一个phpinfo.php文件(文件名看你)
写上代码

<?php
phpinfo();
?>

保存完毕。
浏览器输入 http://localhost/phpinfo.php
如果出现以下,说明你已完成了nginx和php了,恭喜。
在这里插入图片描述

4.创建脚本,开启关闭重启nginx+php服务。

4.1下载地址:https://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip
解压到nginx下
创建3个脚本,从名字能看得出来作用  分别命令是:
这个工具的作用实际上就是防止你误关闭doc窗口将nginx和php服务,可以隐藏后台运行。

停止服务:

@echo off
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

启动服务:

@echo off
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting PHP FastCGI...
D:/development/nginx/RunHiddenConsole D:/development/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/development/php/php.ini
 
echo Starting nginx...
D:/development/nginx/RunHiddenConsole D:/development/nginx/nginx-1.10.3/nginx.exe -p D:/development/nginx/nginx-1.10.3

重启服务(就是停止再启动):

@echo off
echo Stopping nginx...    
taskkill /F /IM nginx.exe > nul  
echo Stopping PHP FastCGI...  
taskkill /F /IM php-cgi.exe > nul  
 
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting PHP FastCGI...
D:/development/nginx/RunHiddenConsole D:/development/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/development/php/php.ini
 
echo Starting nginx...
D:/development/nginx/RunHiddenConsole D:/development/nginx/nginx-1.10.3/nginx.exe -p D:/development/nginx/nginx-1.10.3

5.将mysql解压你的目录下开始安装:

首先到D:development/mysql/mysql-5.7.20-winx64/bin/下新建一个文件 my.ini
写入

[mysql]
# 设置mysql客户端默认字符集
 
default-character-set=utf8 
[mysqld]
#skip-grant-tables
 
#设置3306端口
 
port = 3306 
 
# 设置mysql的安装目录
 
basedir=D:\development\mysql\mysql-5.7.20-winx64
 
# 设置mysql数据库的数据的存放目录
 
datadir=D:\development\mysql\mysql-5.7.20-winx64\data
 
# 允许最大连接数
 
max_connections=200
 
# 服务端使用的字符集默认为8比特编码的latin1字符集
 
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
 
default-storage-engine=INNODB
 
# sql_mode
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

保存文件。
然后到跟查看cmd.exe一样 搜索“系统环境变量”
在这里插入图片描述
在变量名为PATH下追加一个;D:\development\mysql\mysql-5.7.20-winx64\bin
你mysql bin的目录,记住是追加而不是覆盖,不然会报错。

至此确定保存修改。
然后到doc窗口命令:

D:\development\mysql\mysql-5.7.20-winx64\bin

安装mysql:mysqld --install
初始化mysql:mysqld --initialize
启动mysql服务:net start mysql (相反关闭就是net stop mysql

启动成功后就是测试能否链接数据库
有的地方说数据库密码可以从D:\development\mysql\mysql-5.7.20-winx64\data的电脑主机名.err里查看,博主从里面看是空密码。
root@localhost is created with an empty password !
你们可以试下,这可能是mysql版本设置的。
链接数据库:
在这里插入图片描述
mysql -hlocalhost -uroot -p
回车后数据你的mysql密码再回车
当看到下Weclome to the MySQL monitor. 就说明链接成功,从图内也能看出数据库版本是:5.7.20

修改数据库密码方法:mysqladmin -u root -p password root
此时修改密码为root ,你们可自行设置密码值
在这里插入图片描述
记得先exit退出来再设置命令,在mysql内设置是会报错误的,他会提示你检查下命令哪里有错误!
退出来后再使用修改命令后回车输入你原来密码回车。
当提示Warning:Since password will be sent to server in plain text,
就说明密码已经修改成功,要记住你后面的密码,当然如果忘了也有办法☺。
之后就可以重新登录了,使用后面设置的密码进行连接。

开启远程登录功能:

1.选择要使用数据库

命令:use mysql

2.开启远程访问服务:

建议:将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器。

命令:update user set host = '%' where user = 'root';

命令:grant all privileges on *.* to root@'%' identified by 'root'; (此时的root是你的密码)

这样就可以以用户名root密码root远程访问该机器上的MySql了.

测试是否修改成功:

命令:select host,user,authentication_string from user;
在这里插入图片描述
注:实际上应该是 password 但是由于mysql版本关系authentication_string实际上就是password字段,密码是由加密算法得来的。
ok至此,你的环境已全部搭建完毕Nginx+PHP+MySQL。

六.安装phpmyadmin

下载地址:https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
解压到你根目录下
本地访问:localhost/phpMyAdmin/
在这里插入图片描述输入你mysql账号密码登录即可,至此你的phpMyAdmin就好了,实际上就是一个页面,比较简单~

7.redis安装

当你想要使用redis缓存时是需要安装rdis服务,否则无法使用。

什么是redis?
redis是一种开源的日志型数据库,刚开始由C语言编写,支持网络、可基于内存可持久化存储形式的键值key-value数据库。
redis支持哪些语言调用?
提供兼容多种语言的API,常见的有Object-C,PHP,Python,以及JAVA,C/C++,C#,JavaScript,还有比如VB,Scheme等等。

redis支持存储的类型有哪些?
string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

redis有server和client 若要使用redis,server必须一直开着。
下载地址:https://github.com/dmajkic/redis/downloads
下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。
D:\redis
打开一个cmd窗口 使用cd命令切换目录到 D:\redis 运行 redis-server.exe redis.conf 。(如果下载的是Redis-x64-3.2.100版本,是运行 redis-server.exe redis.windows.conf)
首先切换到D盘的redis,实际上就是安装并开启server
D: //切换字盘
cd redis //进入文件夹
redis-server.exe redis.conf //安装redis—此时已经安装成功并且打开server(注意该窗口不要关闭)
如果redis启动失败报错he Windows version of Redis allocates a …就使用命令:
解决方式:redis-server.exe redis.windows.conf --maxheap 1gb
在这里插入图片描述
出现该窗口就说明redis启动成功
重新开启一个新的窗口,一样切换到redis文件中,运行client
D: //切换字盘
cd redis //进入文件夹
redis-cli.exe -h 127.0.0.1 -p 6379 ----此时已经开启client客户端了

8.redis扩展

下载地址:https://windows.php.net/downloads/pecl/releases/redis/3.1.2/php_redis-3.1.2-7.1-ts-vc14-x64.zip

找到你phpinfo内
在这里插入图片描述
在这里插入图片描述注意:这里MSVC14 x64 下载redis扩展时一定要按照这样规格去下载,否则即使使用了也无法兼容使用。版本关系~~博主也是刚学的时候碰到这个坑
在这里插入图片描述
ok!解压后,将php_redis.dll拷贝至php的ext目录下。
也可以将php_redis.pdb也拷贝到ext目录下,但博主测试过,只需要将php_redis.dll拷贝至php的ext目录下即可(可能跟php版本有关系,你可以试试然后下方评论哈~)。
就复制到这个目录在这里插入图片描述
找到并编辑php.ini(在ext的上一级)
增加如下:(实际上就是让php调用你刚新增的redis扩展)

; php_redis
extension=php_redis.dll

然后修改保存。
修改完记得重启php服务,可以使用前面的restart_nginx.bat即可。
重启成功后再次访问localhost/phpinfo.php

查找下是否有这样的redis提示,如果有恭喜你已完成了redis扩展安装,如果没有。。。就是版本错误,一定要认真核对phpinfo内的信息。
在这里插入图片描述接下来可以在php下运行测试redis是否能够使用:
可以在新建一个index.php 或者其他文件名随你,写入:

<?php
$redis = new Redis();
$result = $redis->connect('127.0.0.1',6379,10);
var_dump($result);
?>

浏览器访问localhost/index.php
如果结果为:bool(true)
说明在php环境下可以正常运行。如果不行就是redis安装问题。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值