1.安装Python3.12.13
root@ali-lite-web \~\]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 916M 0 916M 0% /dev tmpfs 936M 20K 936M 1% /dev/shm tmpfs 936M 504K 936M 1% /run tmpfs 936M 0 936M 0% /sys/fs/cgroup /dev/vda3 40G 11G 27G 29% / /dev/vda2 200M 5.8M 194M 3% /boot/efi tmpfs 188M 0 188M 0% /run/user/0 wget https://ftp.python.org/ftp/python/3.12.13/Python-3.12.13.tar.xz tar xfv Python-3.12.13.tar.xz cd Python-3.12.13/ ./configure --enable-optimizations --prefix=/usr/local/python3.12 make -j $(nproc) # 使用所有CPU核心加速编译 sudo make altinstall # 使用 altinstall 而不是 install mv /usr/bin/python /usr/bin/python-bk mv /usr/bin/python3 /usr/bin/python3-bk # 创建新链接 sudo ln -s /usr/local/python3.12/bin/python3.12 /usr/bin/python3 sudo ln -s /usr/local/python3.12/bin/python3.12 /usr/bin/python # 同样处理 pip3 sudo mv /usr/bin/pip3 /usr/bin/pip3-bk sudo ln -s /usr/local/python3.12/bin/pip3.12 /usr/bin/pip3 sudo ln -s /usr/local/python3.12/bin/pip3.12 /usr/bin/pip

2.修改MySQL配置
-- 1. 修改 localhost 的 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 2. 检查是否存在 'root'@'%' 用户
SELECT user, host FROM mysql.user WHERE user = 'root';
-- 3. 如果存在,先删除(可选,确保唯一性)
DROP USER IF EXISTS 'root'@'%';
-- 4. 创建允许任何主机登录的 root 用户,并授予所有权限
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 5. 刷新权限
FLUSH PRIVILEGES;
-- 6. 退出
EXIT;
3.安装docker
卸载旧版本(如果存在)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
配置加速
方案二:使用阿里云内网镜像加速服务(如果可用,推荐) 如果您的阿里云账号有容器镜像服务(ACR), 通常它会提供一个内网可访问的 docker.io镜像加速地址, 格式如 https://<企业版实例ID>.mirror.aliyuncs.com。您需要: 1.登录阿里云容器镜像服务控制台。 2.在"镜像加速器"页面找到正确的、用于 docker.io的镜像加速器地址。 3.将这个地址配置到 /etc/docker/daemon.json的 registry-mirrors中,然后重启 Docker。sudo mkdir -p /etc/docker
vim daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
启动& 开机启动docker; enable + start
systemctl enable docker --now
4.安装redis
wget https://download.redis.io/releases/redis-7.4.0.tar.gz
tar -zxvf redis-7.4.0.tar.gz -C /usr/local
cd /usr/local/redis-7.4.0
make
make install
安装到 /usr/local/bin 目录:
root@ali-lite-web redis-7.4.0\]# ll /usr/local/bin/ total 46272 lrwxrwxrwx 1 root root 15 Dec 9 2024 aliyun -\> /usr/bin/aliyun -rwxr-xr-x 1 root root 1776 Dec 25 2024 jemalloc-config -rwxr-xr-x 1 root root 145 Dec 25 2024 jemalloc.sh -rwxr-xr-x 1 root root 179069 Dec 25 2024 jeprof -rwxr-xr-x 1 root root 1461 Dec 25 2024 libmcrypt-config lrwxrwxrwx 1 root root 18 Dec 1 19:09 luajit -\> luajit-2.1.0-beta3 -rwxr-xr-x 1 root root 4309040 Dec 1 19:09 luajit-2.1.0-beta3 -rwxr-xr-x 1 root root 356728 Dec 25 2024 mcrypt lrwxrwxrwx 1 root root 6 Dec 25 2024 mdecrypt -\> mcrypt -rwxr-xr-x 1 root root 9413344 Mar 25 23:15 redis-benchmark lrwxrwxrwx 1 root root 12 Mar 25 23:15 redis-check-aof -\> redis-server lrwxrwxrwx 1 root root 12 Mar 25 23:15 redis-check-rdb -\> redis-server -rwxr-xr-x 1 root root 10471368 Mar 25 23:15 redis-cli lrwxrwxrwx 1 root root 12 Mar 25 23:15 redis-sentinel -\> redis-server -rwxr-xr-x 1 root root 22620640 Mar 25 23:15 redis-server -rwxr-xr-x 1 root root 244 Jan 2 12:45 virtualenv sudo mkdir /etc/redis sudo vim /etc/redis/redis.conf bind 0.0.0.0 port 6379 daemonize yes pidfile /var/run/redis_6379.pid logfile /var/log/redis/redis_6379.log # 添加/修改:禁用空闲连接超时(0 表示永不超时) timeout 0 tcp-keepalive 300 # dir 定义了Redis 工作目录,所有持久化文件(RDB快照、AOF日志)都会保存在这个目录下 dir /var/lib/redis # 持久化设置(可选) save 900 1 save 300 10 save 60 10000 # 安全设置(可选) requirepass 123456 # 配置用于加载 RedisJSON 模块,让Redis原生支持 JSON数据类型 的操作。 loadmodule /usr/lib/redis/modules/rejson.so # 设置为 no:关闭保护模式,允许任何IP连接(无论是否有密码),默认是yes # protected-mode no sudo mkdir -p /var/lib/redis /var/log/redis sudo chown -R redis:redis /var/lib/redis /var/log/redis (可选) sudo chmod 770 /var/lib/redis /var/log/redis ================== 创建 redis 用户: sudo useradd -r -M -U -s /bin/false redis | 参数 | 含义 | 作用 | |-----------------|----------------------|------------------------------------| | `-r` | `--system` | 创建**系统用户**(UID \< 1000),而非普通用户 | | `-M` | `--no-create-home` | **不创建**用户的家目录 | | `-U` | `--user-group` | 创建与用户名**同名**的用户组 | | `-s /bin/false` | `--shell /bin/false` | 设置登录 shell 为 `/bin/false`,**禁止登录** | | `redis` | 用户名 | 创建的用户名 | 创建 systemd 服务文件 sudo vim /etc/systemd/system/redis.service ```bash [Unit] Description=redis-server After=network.target [Service] Type=forking User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target ``` ```bash [Unit] # 单元描述 Description=Redis persistent key-value database # 在网络服务启动后再启动Redis After=network.target [Service] # 启动类型 Type=simple # 以哪个用户和组运行Redis服务 User=redis Group=redis # Redis服务的主进程命令 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf # 优雅停止Redis的命令 ExecStop=/usr/local/bin/redis-cli shutdown # 如果进程崩溃,在5秒后自动重启 Restart=always RestartSec=5 # 资源限制(可选但推荐) # LimitNOFILE=65536 # 安全设置(可选但推荐) # 禁止写入大部分文件系统 ProtectSystem=strict # 设置私有临时目录 PrivateTmp=true # 限制访问/home、/root、/run/user等目录 ProtectHome=true # 防止修改内核参数 NoNewPrivileges=true # 限制可访问的目录 ReadWritePaths=/var/lib/redis /var/log/redis # 标准输出和错误输出重定向到系统日志 StandardOutput=journal StandardError=journal [Install] # 指定在哪个系统运行级别启用服务 WantedBy=multi-user.target ``` sudo systemctl daemon-reload sudo systemctl enable redis sudo systemctl start redis 启动时发现redis一直重启: 方案 1:检查并修复 daemonize 配置(最常见) Redis 配置中的 `daemonize` 设置与 systemd 服务类型冲突: bash ``` # 查看当前配置 grep "^daemonize" /etc/redis/redis.conf ``` **如果显示 `daemonize yes`**: * 问题:Redis 会 fork 到后台运行,主进程立即退出 * systemd 认为进程已退出,触发重启循环,因此将配置文件中的daemonize 设置为no
编译:rejson.so模块
步骤 1:安装编译所需依赖
# 安装开发工具和依赖 sudo yum groupinstall -y "Development Tools" sudo yum install -y cmake clang git步骤 2:安装 Rust 环境
RedisJSON 最新版本依赖 Rust 进行编译。如果希望使用最新版,需要先安装 Rust:
# 下载并安装 Rust(安装过程中选择默认选项即可) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 使环境变量生效 source $HOME/.cargo/env # 验证安装 rustc --version步骤 3:克隆 RedisJSON 仓库并编译
进入常用的源码目录
cd /usr/local/src
克隆 RedisJSON 仓库
git clone https://github.com/RedisJSON/RedisJSON.git
进入目录
cd RedisJSON
编译模块(这一步会生成 lib rejson.so 文件)
cargo build --release
步骤 4:放置模块文件并配置权限
# 创建存放 Redis 模块的目录 sudo mkdir -p /usr/lib/redis/modules # 将编译好的模块文件复制过去 sudo cp target/release/librejson.so /usr/lib/redis/modules/ # 设置正确的所有者和权限 sudo chown redis:redis /usr/lib/redis/modules/librejson.so sudo chmod 755 /usr/lib/redis/modules/librejson.so步骤 5:修改 Redis 配置文件
# 编辑 Redis 配置文件 sudo vi /etc/redis.conf # 在文件末尾添加以下一行 loadmodule /usr/lib/redis/modules/librejson.so步骤 6:重启 Redis 并验证
bash
# 重启 Redis 服务 sudo systemctl restart redis # 连接 Redis 并查看已加载模块 redis-cli 127.0.0.1:6379> MODULE LIST # 输出中应该包含类似 "name" "ReJSON" 的信息
如果发现远程无法连接redis,检查阿里云服务器的防火墙:
