windows下搭建nginx+php+redis环境

时间:2022-08-02 20:33:29

手上有一个vps搭了*,还剩下一点空间,加上之前万网域名4块钱一年!所以想搞个个人站玩一下,于是想现在本机试试效果。

因为我自己玩,没什么人访问,再加上剩下的空间也不多,所以标准就是越小越好。。。所以选了这个组合。

开始前

先写好开启关闭进程的bat文件,我倒腾的时候一直用命令行启动和关闭再启动,loop,简直要崩溃了。

获取安装包

  • Nginx:直接搜就好了
    官网
  • PHP:也很好找直接搜
    官网
  • Redis:redis官方没有提供windows支持,但是微软提供了

    The Redis project does not officially support Windows. However, the Microsoft Open Tech group develops and maintains this Windows port targeting Win64.

    github项目主页
    下载页面

  • php_redis:redis以扩展的形式在php下使用,和MySQL一样。比较坑爹的是,这个项目的主页上没有二进制文件下载,需要下载源码手动编译,当我编译完以后,我发现了他的二进制文件下载地址!
    github项目主页
    二进制文件网站
    小心:下载的二进制文件必须和php版本号对应,线程对应,否则根本装不上扩展!

安装和配置

先装后装哪个都无所谓,而且我下的都是压缩包,解压就用的那种。下面的顺序主要是写起来方便描述

Redis

安装(解压)以后,运行redis-server.exe,不能关闭。这样就启动redis服务了,然后运行redis-cli.exe启动一个客户端,测试一下。
redis-server.exe不能关闭,关闭以后redis服务就停止了
可以使用RunHiddenConsole工具隐藏控制台。

nginx

解压就能用,启动nginx.exe,访问一下试试。
- 网站目录:

location / {
      root   html;
      index  index.html index.htm;
}

root是网站根目录,index是网站主页默认文件,自己看着改。不改是最好的,免得出错。

  • php脚本处理:
#location ~ \.php$ {
     root           html;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
     include        fastcgi_params;
}

这里要修改的是倒数第二行fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
$doucment_root变量的值是root定义的地址(在上面的配置中就是html目录)

  • 其他
    设置404,50x页面等,注释和示例很详细,推荐不要放到网站目录下面。

如果修改网站根目录,要求改两个location中的root,而且要用绝对路径,使用相对路径php转发以后找不到文件,不太懂为什么,要研究一下nginx转发的原理

PHP

打开php.ini文件(如果没有,把php.ini-development复制一份改成这个就可以了)。

-php-cgi
因为使用nginx,要用php-cgi,具体百度。
大概773行,修改为
cgi.fix_pathinfo=1

  • 打开扩展目录
    因为redis是以扩展形式使用的,包括其他很多都是以扩展形式使用,所以要打开。
    大概在736行,取消注释(去掉分号)
 extension_dir = "ext"
  • 添加php_redis扩展
    大概880行,一堆extension=******.dll,加上一行extension=php_redis.dll,这个就是phpredis的扩展文件了,phpredis解压出来吧”php_redis.dll”这个文件放到php目录的“ext”目录下面。如果还有其他的dll文件,也是一样的操作——放到“ext”目录下,然后添加一行extension=****.dll

测试文件:

<?php phpinfo(); ?>

如果页面能出现说明php配置好了,查看redis扩展,如果存在说明配置好了,如果没有,请检查扩展版本

结束

完工!
最后我意识到,我的vps并不是windows平台啊,草!