• ROR部署:阿里云Ubuntu实例

  • Pic Name: Jetty Tag: RubyOnRails

    正式贴文的撰写将由部署步骤开始,因为项目实际上线的过程除编程外还有其他多种因素的影响,因此作者觉得越早部署将在一定程度上缩减开发周期。

     

    云服务器操作系统选择(Linux)

    云服务器的操作系统几乎都使用Linux操作系统,此实例选用Linux下对初学者友好的Ubuntu版本(安装    问题较少且在论坛中容易搜索到相对应的解决方法),参照网上建议选择Ubuntu的LTS版本(16.04)

     

    租用IaaS云服务器(阿里云)

    此处略去对IaaS、PaaS、SaaS的解读,此处我们选择IaaS(基础设施服务Infrastructure-as-a-Service)。

    首先前往阿里云进行注册(可用支付宝,较为方便),当然,只有经过实名认证的用户才可以继续购买服务器(一般用支付宝登陆的没什么问题),对于使用其他账户登陆的,在认证完后请充值100元。然后便可前往菜单栏查找云服务器ESC服务的选项,选中后到页面进行实例创建(此处温馨提示: 阿里云有学生认证的活动,可低价购买云服务器,配置为1G2核,作者使用的型号产品就是该种)。

    云服务器的产品计费方式分两种: 包年月/按量付费,对于短期练习操作的编程者来说,后者较为实惠。另外需要注意地域的选择,不同的地点因服务器等级不一致会影响连线速度,建议选择较新的华北三。阿里云内建了防火墙功能,因此需要打开对内连线 Port22(SSH登入)、Port80(HTTP)、Port443(HTTPS),所以接下来选择默认安全组,并在对应端口勾选。镜像选择公共镜像,操作系统如上描述选择Ubuntu16.04 64位最后设置你的登陆密码,最好尽可能的复杂,避免被恶意破解。

    确定无误后开通,返回控制台实例,等待启动,找到分配的实例IP位置。至此便开通成功,如果希望进一步确认,可以通过终端ssh登入:ssh root@ip公址,然后输入前面设置的密码便可。

    如果练习完毕或设置错误,可以将云服务器注销掉重新配置。

     

    Linux权限管理

    root用户拥有最大的权限,一般不会直接使用它,因此将创建一个新的账号用于登陆管理:

    adduser jetty #创建jetty用户

    设定密码后一直按ENTER即可。 exit离开服务器,使用新的账号登入。接着为新账号提供sudo权限,新增档案 /etc/sudoers.d/jetty ,其中添加内容 jetty ALL=(ALL:ALL) ALL ,注意区分不同账号的密码!

    远端登入还有另外一种形式(免密码),即通过非对称加密的方式,具体同github类似,感兴趣的读者可以自行上网查询。

    Linux套件安装与更新

    Ubuntu内建的套件管理工具为 apt-get ,使用服务器的步骤首先便是更新系统套件的清单,再进行升级。

    sudo apt-get update
    sudo apt-get upgrade -f 

    按ENTER继续即可,然后设定系统时区,单选ASIA,然后选择SHANGHAI。接下来安装ROR所需要的套件(代码为一段)

    sudo apt-get install -y build-essential git-core bison openssl libreadline6-dev curl zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 autoconf libc6-dev libpcre3-dev libcurl4-nss-dev libxml2-dev libxslt-dev imagemagick nodejs libffi-dev

    接下来等待安装,按ENTER即可。 

     

    Linux下安装Ruby

    此间选择使用BrighBox已经编译好的Ruby套件:

    sudo apt-get install software-properties-common
    sudo apt-add-repository ppa:brightbox/ruby-ng
    sudo apt-get update
    sudo apt-get install ruby2.4 ruby2.4-dev

    接着输入ruby -v 观察是否输出ruby版本号,是则成功。

    下一步进行Ruby套件 Bundler 的安装,用于安装Rails

    sudo gem install bundler --no-ri --no-rdoc

    若速度较慢,可在后面添加 --source https://gems.ruby-china.org 

     

    Linux安装数据库

    由于作者偏爱postgresql,故此只提供postgresql的安装方法:

    sudo apt-get install postgresql postgresql-contrib libpq-dev

     安装完成后修改postgresql创建的postgres账号的密码

    sudo -u postgres psql    #然后打 \password 设置数据库密码
    sudo -u postgres createdb new_db  #创建new_db数据库备用

     

    Nginx+Passenger网站服务器安装

    在开发过程中一般使用puma这套由Ruby编写的网站服务器,但在实际生产过程中我们通常选择效能更高的Nginx(C语言开发的网站服务器)提供静态档案,和Passenger这个扩充模组来执行Ruby程序。 

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
    sudo apt-get install -y apt-transport-https ca-certificates
    sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main >  /etc/apt/sources.list.d/passenger.list'
    sudo apt-get update
    sudo apt-get install -y nginx-extras passenger

    待执行完之后,打开浏览器输入服务器的Ip地址就会看到默认的Nginx静态网页。 

     

    Linux防火墙安装配置

    对于阿里云的云服务器而言,因为产品自带防火墙,所以这步骤可有可无。

    sudo apt-get install ufw
    sudo ufw default deny
    sudo ufw allow 22/80/443  (拆开分别运行)
    sudo ufw enable  (启动防火墙)

     

    至此,服务器的搭建便算成功了,剩下一些细致的配置将在随后其他文章中标注。

    如果有遗漏或错误的地方,欢迎提出。

    Posts共1条评论

    • User User: abx date: Friday May 04,2018

      很好的网站,学习了。

Pic

登陆进行评论

  • 国历日期:

欢迎来信