在京东云(JD Cloud)服务器上快速搭建 Ruby on Rails 环境,推荐使用 RVM + rbenv + Bundler 的现代组合(推荐 rbenv 更轻量可控),并配合 Nginx + Puma 部署生产环境。以下是清晰、安全、可复现的快速搭建步骤(以 Ubuntu 22.04 LTS 为例,适用于京东云 CVM 实例):
✅ 前提准备
- 已开通京东云 CVM 实例(推荐配置:2核4G+,系统选
Ubuntu 22.04 LTS) - 已通过 SSH 登录(如
ssh -i your-key.pem ubuntu@your-ip) - 确保网络通畅(京东云默认开放 22/80/443,如需其他端口请在「安全组」中放行)
🚀 一、基础环境更新与依赖安装
# 更新系统 & 安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git gnupg2 wget build-essential zlib1g-dev
libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3
libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev
nodejs yarnpkg # Node.js(Rails JS 运行时)和 Yarn(前端包管理)
💡 提示:京东云 Ubuntu 镜像通常预装
nodejs,但建议用yarnpkg(而非旧版yarn)避免冲突。
🐘 二、安装 Ruby(推荐 rbenv 方式,轻量且版本隔离)
# 1. 安装 rbenv 及 ruby-build 插件
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
# 2. 配置环境变量(写入 ~/.bashrc)
echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bashrc
echo 'command -v rbenv >/dev/null || export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc
# 3. 重载配置
source ~/.bashrc
# 4. 检查是否安装成功
rbenv --version # 应输出如 v2.3.0+
# 5. 安装 Ruby(推荐稳定版,如 3.2.2;查看可用版本:rbenv install --list | grep -v - | grep "^s*[0-9]")
rbenv install 3.2.2
rbenv global 3.2.2
# 6. 验证
ruby -v # => ruby 3.2.2pX
gem -v # => 3.4.x+
⚠️ 注意:若遇到编译错误(如 OpenSSL 问题),京东云 Ubuntu 22.04 可能需额外安装
libssl-dev(已包含在第一步)。
🌟 三、安装 Rails 及初始化项目(快速验证)
# 升级 gem 并安装 bundler(Rails 7+ 默认要求)
gem update --system
gem install bundler
# 全局安装 Rails(或按项目安装更佳)
gem install rails -v 7.1.3 # 推荐最新稳定版(查看 https://rubygems.org/gems/rails)
# 验证
rails -v # => Rails 7.1.3
# ✅ 快速创建测试应用(跳过 JavaScript 构建以提速,生产环境再启用)
rails new myapp --skip-javascript --skip-hotwire --database=postgresql
cd myapp
# 启动开发服务器(绑定 0.0.0.0 以便本地访问,仅限测试!)
rails server -b 0.0.0.0:3000
✅ 打开浏览器访问 http://<你的京东云公网IP>:3000,看到 Rails 默认欢迎页即成功!
🔒 生产环境切勿用
rails server!下文提供标准部署方案。
🛠 四、【可选但推荐】生产环境部署(Nginx + Puma)
# 1. 安装 PostgreSQL(京东云推荐,比 SQLite 更适合生产)
sudo apt install -y postgresql postgresql-contrib libpq-dev
sudo systemctl enable postgresql
# 2. 创建数据库用户(替换 your_username)
sudo -u postgres createuser -d -P your_username # 设置密码
# 3. 安装 Puma(Rails 默认应用服务器)
gem install puma
# 4. 安装 Nginx
sudo apt install -y nginx
sudo systemctl enable nginx
# 5. 配置 Puma(生成 config/puma.rb)
bundle exec rails generate puma:install
# 6. 配置 Nginx 反向X_X(/etc/nginx/sites-available/myapp)
sudo tee /etc/nginx/sites-available/myapp > /dev/null << 'EOF'
upstream myapp {
server unix:/home/ubuntu/myapp/tmp/sockets/puma.sock;
}
server {
listen 80;
server_name _;
root /home/ubuntu/myapp/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
location / {
proxy_pass http://myapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
# 启用站点
sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
# 7. 启动 Puma(后台运行,推荐用 systemd 或 foreman)
# 示例:使用 systemd(创建 /etc/systemd/system/puma-myapp.service)
sudo tee /etc/systemd/system/puma-myapp.service > /dev/null << 'EOF'
[Unit]
Description=Puma HTTP Server for myapp
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/myapp
ExecStart=/home/ubuntu/.rbenv/shims/bundle exec puma -C config/puma.rb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable puma-myapp
sudo systemctl start puma-myapp
✅ 访问 http://<你的京东云公网IP> 即可看到 Rails 应用(无需端口)!
🧰 五、京东云专属优化建议
| 项目 | 建议 |
|---|---|
| 镜像选择 | 使用京东云官方 Ubuntu 22.04 LTS 镜像(内核/驱动兼容性好) |
| 安全组 | 仅开放 22(SSH)、80/443(Web),禁止开放 3000 等开发端口 |
| 备份 | 利用京东云「云硬盘快照」定期备份 /home/ubuntu/myapp 和数据库 |
| 数据库 | 生产环境强烈推荐京东云 云数据库 PostgreSQL 版(高可用、自动备份) |
| HTTPS | 使用京东云「SSL 证书服务」免费申请证书,Nginx 中配置即可 |
🚨 常见问题速查
| 现象 | 解决方案 |
|---|---|
rbenv: command not found |
检查 ~/.bashrc 是否生效 → source ~/.bashrc 或改用 ~/.profile |
Gem::Ext::BuildError: ERROR: Failed to build gem native extension |
缺少 -dev 包 → 补装 zlib1g-dev libssl-dev ...(见第一步) |
PG::ConnectionBad: could not connect to server |
PostgreSQL 未启动 → sudo systemctl start postgresql |
502 Bad Gateway |
Puma 未运行或 sock 文件路径不匹配 → 检查 config/puma.rb 和 Nginx upstream |
✅ 总结:一键验证命令(复制粘贴即可)
# 全流程快速验证(执行前确保已安装依赖)
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bashrc
echo 'command -v rbenv >/dev/null || export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc
source ~/.bashrc
rbenv install 3.2.2 && rbenv global 3.2.2
gem install rails -v 7.1.3 && rails new hello --skip-javascript --database=sqlite3 && cd hello && rails server -b 0.0.0.0:3000
✅ 成功后访问
http://<IP>:3000—— 你已在京东云上跑起 Rails!
如需 自动化脚本(Shell/Ansible)、Docker 部署方案 或 连接京东云 RDS PostgreSQL 的详细配置,我可立即为你生成 👇
需要的话,请告诉我你的具体需求(如:是否需 HTTPS?是否用 MySQL?是否需 CI/CD?)😊
CCLOUD博客