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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 关于如何在阿里云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

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

$ usermod -aG sudo rails

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

$ cat /etc/passwd

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

$ su - rails

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

安装必要的软件

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

安装git

$ sudo apt-get install git

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

$ git config --global user.name = "YOUR NAME"
$ git config --global user.email = "YOUR@EMAIL.COM"

或者:

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

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

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

Host github.com
  IdentityFile ~/.ssh/github_rsa # 用你自己的私钥

这样你访问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

这么多必要的包谁也记不住,网上的帖子很多,总归是前任总结的经验教训,发帖的目的不就是广为传播这些记不住的冷知识嘛,好了可以正式下载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

添加路径是为了全局的使用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

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

$ rbenv install 2.5.0

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

$ rbenv global 2.5.0

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

$ gem install rails --no-ri --no-rdoc
$ sudo apt-get install nodejs
$ rails -v
$ node -v

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

下载rails APP代码

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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
5天前
|
弹性计算
阿里云ECS的使用心得
本文主要讲述了我是如何了解到ECS,使用ECS的一些经验,以及自己的感悟心得
|
5天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。
|
6天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
6天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
415 4
|
1月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
|
18天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。
|
1月前
|
弹性计算
阿里云3M带宽云服务器并发多大?阿里云3M带宽云服务器测评参考
在探讨云服务器3M带宽能支持多大并发这一问题时,我们首先要明白一个关键点:并发量并非仅由带宽决定,还与网站本身的大小密切相关。一般来说,一个优化良好的普通网站页面大小可能只有几K,为便于计算,我们可以暂且假定每个页面大小为50K。
818 1