部署RoR生产环境到阿里云ECS (一)

简介: 关于如何在阿里云ECS(Ubuntu16.04)上部署RubyonRails的一些心得,希望分享给更多的rubyist知道; 本文讨论的是如何在阿里云上部署rails生产环境; 首先ECS创建的时候阿里云会一个root账号和一个管理员密码,ssh root@ip_address(公网) 配以密码不是特别方便,建议在本机电脑上创建一对公钥私钥,并且把公钥上传到阿里云的ESC服务器,可以参考我的openssh讨论。

关于如何在阿里云ECS(Ubuntu16.04)上部署RubyonRails的一些心得,希望分享给更多的rubyist知道;

本文讨论的是如何在阿里云上部署rails生产环境;

首先ECS创建的时候阿里云会一个root账号和一个管理员密码,ssh root@ip_address(公网) 配以密码不是特别方便,建议在本机电脑上创建一对公钥私钥,并且把公钥上传到阿里云的ESC服务器,可以参考我的openssh讨论

在可以实现 ssh server-name以后,我们会发现现在登陆的是root用户,root用户拥有的权限太高,不小心的操作就会对linux系统造成不可逆的破坏,所以一般的建议是新建一个新的用户,我个人也强烈建议这么做,除非对linux系统命令非常熟悉知道自己在干什么。

创建新的linux用户

在linux(Ubuntu16.04)系统中, 可以通过下面的命令来创建:

$ adduser rails
AI 代码解读

在弹出的对话里面只要提供密码和密码验证,后面的问题都直接回车就行;

$ usermod -aG sudo rails
AI 代码解读

这个命令是添加新的用户到sudo这个用户组。在linux系统中,不可避免的要使用一些只有系统管理员才能使用的命令,sudo前缀可以让当前用户暂时获取root的资格并且以root的身份去运行一些命令,比如services,但是只有sudo组里的用户才能使用这个sudo命令。

$ cat /etc/passwd
AI 代码解读

可以用来查看本机当前所用的用户, 新用户添加以后,/root/rails/ 就自动创建,就是当前用户的默认路径。
现在我们可以切换到我们新建的用户了

$ su - rails
AI 代码解读

可以通过于之前相同的方法上传过id_rsa.pub到 /home/rails/.ssh,以后都可以通过ssh rails@ip_address来登陆

安装必要的软件

现在我们的登陆账户是rails了, 现在可以安装git上传下载代码,然后安装rbenv,rbenv,rails,nodejs。

安装git

$ sudo apt-get install git
AI 代码解读

使用git命令以前要先设置全局用户

$ git config --global user.name = "YOUR NAME"
$ git config --global user.email = "YOUR@EMAIL.COM"
AI 代码解读

或者:

$ vim ~/.gitconfig
AI 代码解读
[color]
        ui = true
[user]
        name = YOUR NAME
        email = YOUR@EMAIL.COM
[push]
        default = current
[pull]
        default = current
AI 代码解读

如果不幸的你和我一样github激活了多重验证,你需要在你的服务器端生成一对公钥私钥,然后把公钥添加到你的github账户可以参考这个github帮助

别忘了添加一下这行到你的 ~/.ssh/config文件中;

Host github.com
  IdentityFile ~/.ssh/github_rsa # 用你自己的私钥
AI 代码解读

这样你访问git clone git@github.com ... 的时候就能自动使用你刚刚生成的私钥作为ssh连接了。

安装rbenv作为ruby的版本管理

$ sudo apt-get update
$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
AI 代码解读

这么多必要的包谁也记不住,网上的帖子很多,总归是前任总结的经验教训,发帖的目的不就是广为传播这些记不住的冷知识嘛,好了可以正式下载rbenv了, 我们直接从它的github下载源码,github上也有他的安装说明,我就从简说明了

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
AI 代码解读

添加路径是为了全局的使用rbenv给我们提供的一些ruby和gem的使用工具, 具体的安装可以参考github。我以前一直使用chruby和ruby-install来作为轻量级的ruby版本管理,事实证明rbenv提供的路径工具能非常方便帮助我们通过systemD脚本来运行railsAPP,所以我建议大家直接使

用rbenv,如果有人为为什么不用rvm,都是累啊,太庞大了,相当于雇100人管理只有几人的公司,我们的小机受不了啊,bug多什么的也就是听说,我也就用了一年就换chruby了。

安装ruby

rbenv安装好了以后,我们可以通过他的插件ruby-build来安装ruby

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
AI 代码解读

这样我们就能直接安装使用rbenv install命令了。

$ rbenv install 2.5.0
AI 代码解读

你也可以安装自己需要的版本

$ rbenv global 2.5.0
AI 代码解读

设置全局ruby版本,然后就是安装rails和nodejs,安装nodejs是因为rails的assets管理需要用到。

$ gem install rails --no-ri --no-rdoc
$ sudo apt-get install nodejs
$ rails -v
$ node -v
AI 代码解读

检测安装的rails版本和nodejs版本;

下载rails APP代码

不知不觉写了这么多了,我最恨最怕就是tl;dr(too long, don't read); 所以后一半的内容下回再发表吧,¯_(ツ)_/¯相

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
81 10
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
本文介绍了如何通过阿里云获取ECS云服务器并进行操作系统配置与组件安装,以实现高效的资源管理和系统监控。阿里云凭借强大的基础设施和丰富的服务成为用户首选。文中详细描述了获取ECS、RAM授权、开通操作系统控制台及组件安装的步骤,并展示了如何利用控制台实时监控性能指标、诊断系统问题及优化性能。特别针对idle进程进行了深入分析,提出了优化建议。最后,建议定期进行系统健康检查,并希望阿里云能推出更友好的低成本套餐,满足学生等群体的需求。
92 17
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
Vue项目部署:如何打包并上传至服务器进行部署?
以上就是Vue项目打包及部署的方法,希望对你有所帮助。描述中可能会有一些小疏漏,但基本流程应该没有问题。记住要根据你的实际情况调整对应的目录路径和服务器IP地址等信息。此外,实际操作时可能会遇到各种问题,解决问题的能力是每一位开发者必备的技能。祝你部署顺利!
55 17
玩转云服务器——阿里云操作系统控制台体验测评
在云服务器日益普及的背景下,运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态,又能智能诊断问题,提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式,致力于提升操作效率,为用户带来全新的系统运维体验。阿里云操作系统控制台凭借便捷易用的设计和高效的管理功能,成为云服务器运维的强力助手。本次测评基于真实体验截图,对其整体表现进行了深入探索。
90 33
阿里云幻兽帕鲁联机服务器搭建全攻略,速来抄作业!2025新版教程
阿里云提供2025年最新幻兽帕鲁服务器申请购买及一键开服教程。4核16G配置支持8人,70元/月;8核32G配置支持20人,160元/月。选择配置、地域、操作系统后,点击【一键购买及部署】,约3分钟完成创建。本地安装STEAM客户端并登录,进入游戏选择多人模式,输入服务器IP和端口(8211),即可开始游戏。详细教程及更多问题解答请参考阿里云幻兽帕鲁游戏专区。
73 20
阿里云操作系统控制台——解决服务器磁盘I/O故障
阿里云操作系统控制台——解决服务器磁盘I/O故障
48 12
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
【已解决】Matomo本地SMTP配置可以发邮件,但部署到阿里云ECS就发不了邮件
在阿里云ECS上使用Matomo和PHPMailer发送邮件时遇到问题,邮件无法发出且接口调用Pending。经过排查,发现是ECS安全组未开放25/465端口,导致SMTP请求无法正常通信。解决方法为在安全组中配置并开放25/465端口,从而恢复邮件发送功能。
幻兽帕鲁palworld自建游戏联机服务器,使用阿里云价格真优惠!
阿里云提供幻兽帕鲁(Palworld)游戏服务器搭建服务,支持4核16G(8人在线)和8核32G(20人在线)两种配置,带宽10M,价格低至70元/月起。通过阿里云计算巢服务,可实现一键购买与自动部署,简单快捷。玩家只需在本地安装STEAM客户端并登录游戏,输入服务器IP及端口8211即可联机游玩。教程详细涵盖服务器选择、配置设置及游戏接入全流程,助你轻松开启帕鲁冒险之旅!