安装OpenResty
安装OpenResty
1.安装
首先你的Linux虚拟机必须联网
1)安装开发库
首先要安装OpenResty的依赖开发库,执行命令:
1 | yum install -y pcre-devel openssl-devel gcc --skip-broken |
2)安装OpenResty仓库
你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。运行下面的命令就可以添加我们的仓库:
1 | yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo |
如果提示说命令不存在,则运行:
1 | yum install -y yum-utils |
然后再重复上面的命令
3)安装OpenResty
然后就可以像下面这样安装软件包,比如 openresty:
1 | yum install -y openresty |
4)安装opm工具
opm是OpenResty的一个管理工具,可以帮助我们安装一个第三方的Lua模块。
如果你想安装命令行工具 opm,那么可以像下面这样安装 openresty-opm 包:
1 | yum install -y openresty-opm |
5)目录结构
默认情况下,OpenResty安装的目录是:/usr/local/openresty

看到里面的nginx目录了吗,OpenResty就是在Nginx基础上集成了一些Lua模块。


一般情况下openResty都是当成nginx来用的
6)配置nginx的环境变量
打开配置文件:
1 | vi /etc/profile |
在最下面加入两行:
1 | export NGINX_HOME=/usr/local/openresty/nginx |
NGINX_HOME:后面是OpenResty安装目录下的nginx的目录
然后让配置生效:
1 | source /etc/profile |
2.启动和运行
OpenResty底层是基于Nginx的,查看OpenResty目录的nginx目录,结构与windows中安装的nginx基本一致:

所以运行方式与nginx基本一致:
1 | # 启动nginx |
nginx的默认配置文件注释太多,影响后续我们的编辑,这里将nginx.conf中的注释部分删除,保留有效部分。
修改/usr/local/openresty/nginx/conf/nginx.conf文件,内容如下:
1 |
|
1 |
|
在Linux的控制台输入命令以启动nginx:
1 | nginx |
然后访问页面:http://192.168.123.12:8081,注意ip地址替换为你自己的虚拟机IP:
3.备注
加载OpenResty的lua模块:(在nginx.conf中的http下面添加)
1 | #lua 模块 |
common.lua
1 | -- 封装函数,发送http请求,并解析响应 |
释放Redis连接API:
1 | -- 关闭redis连接的工具方法,其实是放入连接池 |
读取Redis数据的API:
1 | -- 查询redis的方法 ip和port是redis地址,key是查询的key |
开启共享词典:
1 | # 共享字典,也就是本地缓存,名称叫做:item_cache,大小150m |
4.安装MySQL
后期做数据同步需要用到MySQL的主从功能,所以需要在虚拟机中,利用Docker来运行一个MySQL容器。
4.1.准备目录
为了方便后期配置MySQL,我们先准备两个目录,用于挂载容器的数据和配置文件目录:
1 | # 进入/tmp目录 |
4.2.运行命令
进入mysql目录后,执行下面的Docker命令:
1 | docker run \ |
4.3.修改配置
在/tmp/mysql/conf目录添加一个my.cnf文件,作为mysql的配置文件:
1 | # 创建文件 |
文件的内容如下:
1 | [mysqld] |
4.4.重启
配置修改后,必须重启容器:
1 | docker restart mysql |
✅启动失败后可尝试 :重新创建容器,正确挂载数据目录
1. 删除现有容器
-
先查看现有容器(包括已停止的):
1
docker ps -a | grep mysql
你会看到类似这样的输出:
1
22d4ec76d55c mysql:5.7.25 ... Exited (1) ... mysql
-
删除该容器
停止并删除当前错误的容器
1
2
3
4docker stop mysql
docker rm mysql
# 或者用容器 ID 删除:
docker rm 22d4ec76d55c -
确认端口没有冲突(如果你之前解决了端口占用问题):
1
sudo lsof -i :3306
确保没有其他进程占用 3306。
2. 切换到正确的目录(重要!)
bash
1 | cd /tmp/mysql |
3. 重新创建 MySQL 容器(现在 $PWD 就是 /tmp/mysql)
1 | docker run \ |
注意:
-v $PWD/data:/var/lib/mysql这个挂载会把/tmp/mysql/data映射到容器内的数据目录。
4. 检查权限(很关键)
你的数据文件所有者是 polkitd(UID 通常是 999),而 MySQL 容器内的进程默认以 mysql 用户(UID 也是 999)运行。理论上 UID 相同,权限应该没问题。但为了确保万无一失,可以手动修复一下:
1 | # 将数据目录的所有者改为 UID 999(与容器内 mysql 用户一致) |
如果不执行这一步,容器启动后可能因为权限不足而无法读取旧数据,从而自动重新初始化一个新的空数据库。
5. 重启容器并验证
1 | docker restart mysql |
然后在 MySQL 中执行:
1 | show databases; |
应该就能看到你原来的数据了。







