在 CentOS 8 上部署 OpenClaw 并迁移到非 root 用户
本文记录了在 CentOS 8 服务器上部署 OpenClaw 博客助手的完整过程,包括环境准备、安装 Node.js、创建专用用户、配置 systemd 服务等关键步骤。
环境准备
1. 检查系统环境
cat /etc/centos-release
# CentOS Linux release 8.x
2. 更新系统包
sudo dnf update -y
安装 Node.js
OpenClaw 需要 Node.js 环境,推荐使用 Node.js 18+ 版本。
使用 nvm 安装 Node.js
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 加载 nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 安装 Node.js
nvm install 18
nvm use 18
nvm alias default 18
# 验证安装
node --version # v18.x.x
npm --version
安装 OpenClaw
方式一:npm 全局安装
npm install -g openclaw
方式二:使用官方安装脚本
curl -sL https://get.openclaw.ai | sh
创建专用用户
出于安全考虑,不建议以 root 用户运行 OpenClaw。
1. 创建 openclaw 用户
sudo useradd -m -s /bin/bash openclaw
sudo passwd openclaw # 设置密码
2. 配置 sudo 权限(可选)
sudo visudo
# 添加以下行允许 openclaw 用户执行特定命令
openclaw ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart openclaw
迁移 OpenClaw 数据到新用户
1. 创建数据目录
sudo mkdir -p /var/lib/openclaw
sudo chown openclaw:openclaw /var/lib/openclaw
2. 初始化工作区
sudo -u openclaw bash -c '
mkdir -p ~/workspace-blog
cd ~/workspace-blog
openclaw init
'
配置 systemd 服务
创建 systemd 服务文件以开机自启 OpenClaw:
sudo tee /etc/systemd/system/openclaw.service << 'EOF'
[Unit]
Description=OpenClaw Blog Assistant
After=network.target
[Service]
Type=simple
User=openclaw
WorkingDirectory=/var/lib/openclaw/workspace-blog
ExecStart=/usr/local/bin/openclaw gateway start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
管理服务
# 重新加载 systemd
sudo systemctl daemon-reload
# 启用服务
sudo systemctl enable openclaw
# 启动服务
sudo systemctl start openclaw
# 查看状态
sudo systemctl status openclaw
配置 Nginx 反向代理
1. 安装 Nginx
sudo dnf install -y nginx
sudo systemctl enable --now nginx
2. 配置反向代理
sudo tee /etc/nginx/conf.d/openclaw.conf << 'EOF'
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
EOF
# 测试并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx
配置防火墙
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
验证部署
# 检查 OpenClaw 服务状态
sudo systemctl status openclaw
# 检查端口监听
ss -tlnp | grep 3000
# 查看日志
sudo journalctl -u openclaw -f
常见问题排查
Q: 服务启动失败
检查日志:journalctl -u openclaw -n 50
Q: 端口被占用
sudo lsof -i :3000
sudo fuser -k 3000/tcp
Q: 权限问题
确保 /var/lib/openclaw 目录属于 openclaw 用户:
sudo chown -R openclaw:openclaw /var/lib/openclaw
总结
完成以上步骤后,你的 OpenClaw 博客助手应该已经正常运行。通过创建专用用户和配置 systemd 服务,可以确保 OpenClaw 以安全的方式持续运行。
本文基于实际部署经验总结,如有问题欢迎交流。