在京东云(JD Cloud)服务器上快速搭建 Ruby on Rails 环境,推荐采用 RVM + rbenv(或直接用 rbenv)+ Rails 官方方式,兼顾稳定性与易维护性。以下是经过验证的高效、安全、生产就绪型搭建流程(以 Ubuntu 22.04 LTS 为例,适用于京东云轻量应用服务器或云主机):
✅ 前提条件
- 已购买并登录京东云服务器(建议选择 Ubuntu 22.04/20.04 或 CentOS 7+/8+;本文以 Ubuntu 22.04 为主)
- 已通过 SSH 登录(如
ssh root@your-server-ip) - 确保网络畅通(京东云默认开放 22/80/443,开发阶段需额外放行
3000端口)
🚀 一键式快速搭建步骤(复制粘贴执行)
# 1. 更新系统 & 安装基础依赖
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
# 2. 安装 rbenv(轻量、无侵入、推荐替代 RVM)
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
# 将 rbenv 加入 shell 配置(适配 bash/zsh)
echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bashrc
echo 'command -v rbenv >/dev/null || export PATH="$RBENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
# 重载配置(立即生效)
source ~/.bashrc
# 3. 安装 ruby-build 插件(用于编译安装 Ruby)
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
# 4. 安装 Ruby(推荐稳定版,如 3.2.2)
rbenv install 3.2.2
rbenv global 3.2.2
# 验证
ruby -v # 应输出:ruby 3.2.2p...
gem -v # 应输出:>= 3.4.x
# 5. 设置国内镜像源(提速 gem 安装,京东云用户强烈推荐!)
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l # 确认仅剩 https://gems.ruby-china.com/
# 6. 安装 Rails(最新稳定版,如 7.1.x)
gem install rails -v 7.1.3 # 可替换为最新版:`gem list rails --remote | grep -E '^s*railss+(.*)$'`
# ⚠️ 若提示缺少 `bundler`,先执行:gem install bundler
# 7. 验证 Rails
rails -v # 应输出:Rails 7.1.3
# 8. (可选但推荐)创建首个 Rails 应用测试环境
rails new myapp --skip-bundle
cd myapp
bundle config set --local path 'vendor/bundle' # 本地 bundle 路径,避免权限问题
bundle install
rails server -b 0.0.0.0:3000 # 绑定所有 IP,便于网络访问
🔐 安全与网络访问关键配置(京东云必备!)
-
开放 3000 端口(控制台操作)
登录 京东云控制台 → 云主机 → 实例详情 → 安全组 → 编辑规则 → 添加入方向规则:- 协议:TCP
- 端口范围:
3000 - 源 IP:
0.0.0.0/0(开发测试)或指定 IP(生产建议限制)
-
防火墙(UFW)放行(Ubuntu)
sudo ufw allow 3000 sudo ufw enable -
启动 Rails 并后台运行(开发测试)
# 使用 nohup 后台启动(临时方案) nohup rails server -b 0.0.0.0:3000 -d & # 查看日志:tail -f nohup.out✅ 生产环境强烈建议使用 Puma + Nginx 反向X_X(非本题重点,但可后续扩展)。
🌐 替代方案(按场景推荐)
| 场景 | 推荐方式 | 说明 |
|---|---|---|
| 极速尝鲜 / CI/CD | docker run -p 3000:3000 -v $(pwd):/app -w /app ruby:3.2-slim rails new . --skip-bundle && bundle install && rails s -b 0.0.0.0:3000 |
无需装环境,秒启,适合测试 |
| CentOS/RHEL 系统 | 改用 yum install @development-tools + rbenv 流程相同 |
注意 OpenSSL 版本兼容性(CentOS 7 需升级 openssl11) |
| 需要 PostgreSQL/MySQL | sudo apt install postgresql postgresql-contrib libpq-dev(PostgreSQL)或 mysql-server libmysqlclient-dev |
Rails 默认 SQLite,生产务必换数据库 |
❗ 常见问题速查
| 问题 | 解决方案 |
|---|---|
rbenv: command not found |
检查 ~/.bashrc 是否正确写入,执行 source ~/.bashrc;或改用 ~/.zshrc(若用 zsh) |
Failed to build native extension |
缺少 -dev 包(如 libsqlite3-dev, libxml2-dev),补全第 1 步依赖 |
rails: command not found |
执行 rbenv rehash,或检查 which rails 是否在 ~/.rbenv/shims/ 下 |
访问 http://IP:3000 超时 |
✅ 检查京东云安全组 + 服务器 UFW/firewalld + Rails 是否监听 0.0.0.0:3000(非 127.0.0.1) |
✅ 最后建议(京东云优化)
- 使用 京东云对象存储(JOS) 存储 Rails 的
public/uploads(配合carrierwave或shrine) - 日志统一推送到 京东云日志服务(JDCloud Log Service)
- 生产部署用 京东云容器服务(JDCCS)+ Kubernetes 运行 Rails Pod,自动扩缩容
如需我为你生成:
- ✅ Nginx + Puma + Rails 生产部署脚本
- ✅ Docker Compose(含 Postgres + Redis)一键部署模板
- ✅ 京东云 CLI 自动化部署 Shell 脚本
欢迎随时告诉我 👇 我可立即为你定制!
祝你在京东云上 Rails 开发顺利、丝滑上线!🚀
CLOUD云枢