美文网首页
Ruby&Rails---Rails5在ubuntu16.04配

Ruby&Rails---Rails5在ubuntu16.04配

作者: HPD_黄霹雳 | 来源:发表于2017-12-19 10:31 被阅读0次
    进入阿里云的服务器
    $ ssh root@120.77.45.76
    root@120.77.45.76's password: ******
    

    如果你之前ssh过这个服务器,然而服务器重装后,再次ssh,会出现这个错误:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!


    图片.png

    需要用下列的命令来解决这个问题

    ssh-keygen -R 120.77.45.76
    
    添加用户

    因为用root操作还是不安全,我们需要创建一个用户
    创建用户并且输入密码

    root@aliyun-ubuntu-sever1:~# useradd -r -m -s /bin/bash hpd
    root@aliyun-ubuntu-sever1:~# passwd hpd
    

    要确保给hpd配置sudo的权限

    root@aliyun-ubuntu-sever1:/home# chmod +w /etc/sudoers
    root@aliyun-ubuntu-sever1:/home# vim /etc/sudoers
    
    图片.png

    之后撤销sudoers文件写权限

    chmod u-w /etc/sudoers
    

    然后我们ctrl+D退出server,在本地重新以hpd的用户登录

    安装rbenv

    让我们安装rbenv,我们将使用它来安装和管理我们的Ruby安装。 首先,更新apt-get:

    sudo apt-get update
    

    使用apt-get安装rbenv和Ruby依赖:

    sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
    

    现在我们准备安装rbenv。最简单的方法是运行这些命令,作为将使用Ruby的用户:

    cd
    git clone git://github.com/sstephenson/rbenv.git .rbenv
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
    
    git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile
    source ~/.bash_profile
    

    注:在Ubuntu桌面,更换所有出现.bash_profile与上面的代码块.bashrc 。 这将rbenv安装到您的主目录,并设置相应的环境变量,允许rbenv到活动版本的Ruby。 现在我们准备安装Ruby。

    安装Ruby

    我这边是使用2.3.0的ruby版本
    rbenv install -v 2.3.0
    rbenv global 2.3.0

    在global子命令设置的Ruby的默认版本。如果要安装和使用其他版本,只需运行带有不同版本号的rbenv命令。 使用此命令验证Ruby是否已正确安装:

    ruby -v
    

    很可能你不会希望Rubygems为您安装的每个gem生成本地文档,因为这个过程可能很长。要禁用此功能,请运行以下命令:

    echo "gem: --no-document" > ~/.gemrc
    

    您还将要安装bundler gem,以管理您的应用程序依赖关系:

    gem install bundler
    

    现在Ruby已经安装,让我们安装Rails。

    安装Rails

    相同的用户,安装Rails使用此命令(您可以指定与特定版本-v选项):我这边是使用5.1.4的版本

    gem install rails -v 5.1.4
    

    当你安装Ruby或提供命令的Gem的新版本,您应该运行rehash子命令。 这将安装shims出于众所周知的rbenv所有的Ruby可执行文件,这将允许您使用可执行文件:

    rbenv rehash
    

    使用此命令打印其版本,验证Rails已正确安装:

    rails -v
    

    如果安装正确,您将看到安装的Rails版本。

    安装Javascript运行时

    一些Rails特性(例如资产管道)取决于Javascript运行时。我们将安装Node.js以提供此功能。 添加Node.js PPA到apt-get:

    sudo add-apt-repository ppa:chris-lea/node.js
    

    注意:如果出现Ubuntu的add-apt-repository: command not found,否则略过下列这个

    sudo apt-get install software-properties-common python-software-properties
    

    然后更新apt-get并安装Node.js包:

    sudo apt-get update
    sudo apt-get install nodejs
    

    恭喜! Ruby on Rails现在安装在您的系统上。

    安装PostgreSQL

    首先,更新apt-get:

    sudo apt-get update
    

    然后安装PostgreSQL及其开发库:

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

    PostgreSQL现在已经安装,但你应该创建一个新的数据库用户,你的Rails应用程序将使用。
    使用此命令创建一个PostgreSQL超级用户用户(用您自己的用户名替换高亮显示的单词):

    sudo -u postgres createuser -s pguser
    

    如果要为数据库用户设置密码,请使用以下命令输入PostgreSQL控制台:

    sudo -u postgres psql
    

    PostgreSQL的控制台被显示postgres=#提示符。 在PostgreSQL提示符处,输入此命令以设置您创建的数据库用户的密码:

    \password pguser
    

    在提示符处输入所需的密码,然后进行确认。

    现在您可以通过输入以下命令退出PostgreSQL控制台:

    \q
    
    把项目传到服务器

    我是想把项目传到github上,然后在服务器上用git clone把项目拷贝下来

    配置数据库连接

    请确保你在你的应用程序的根目录( cd ~/ appname )。

    在您喜欢的文本编辑器中打开应用程序的数据库配置文件。 我们将使用vi:

    vi config/database.yml
    

    更新production部分,所以它看起来是这样的:

    production:
      <<: *default
      host: localhost
      adapter: postgresql
      encoding: utf8
      database: appname_production
      pool: 5
      username: <%= ENV['APPNAME_DATABASE_USER'] %>
      password: <%= ENV['APPNAME_DATABASE_PASSWORD'] %>
    

    注意,数据库的用户名和密码,被配置为通过环境变量,被读取APPNAME _DATABASE_USER和APPNAME _DATABASE_PASSWORD 。 将生产密码和秘密保留在应用程序代码库之外是最佳做法,因为如果您使用的是分布式版本控制系统(如Git),它们可以轻松暴露出来。 我们将讨论如何使用环境变量设置数据库认证。

    保存并退出

    安装rbenv-vars插件

    在部署生产Rails应用程序之前,应该使用环境变量设置生产密钥和数据库密码。 一个简单的方法来管理环境变量,我们可以在运行时使用密码和秘密加载到我们的应用程序,是使用rbenv -瓦尔插件。

    要安装rbenv -瓦尔插件,只需切换到.rbenv/plugins目录,并从GitHub克隆。 例如,如果rbenv安装在您的主目录中,请运行以下命令:

    cd ~/.rbenv/plugins
    git clone https://github.com/sstephenson/rbenv-vars.git
    

    设置环境变量

    现在安装了rbenv-vars插件,让我们设置所需的环境变量。

    首先,生成秘密密钥,将用于验证签名的cookie的完整性:

    cd ~/appname
    rake secret
    

    复制生成的密钥,然后打开.rbenv-vars用你喜欢的编辑器文件。 我们将使用vi:

    vi .rbenv-vars
    

    您在此设置的任何环境变量都可以由Rails应用程序读取。

    首先,设置SECRET_KEY_BASE这样的变量(替换您刚才生成和复制的秘密高亮文本):

    SECRET_KEY_BASE=your_generated_secret
    

    接下来,设置APPNAME _DATABASE_USER这样的变量(与你的应用程序名称替换突出了“APPNAME”和“应用程序名称”与您的生产数据库的用户名):

    APPNAME_DATABASE_USER=appname
    

    最后,设置APPNAME _DATABASE_PASSWORD这样的变量(与你的应用程序名称替换突出了“APPNAME”和“prod_db_pass”与您的生产数据库的用户密码):

    APPNAME_DATABASE_PASSWORD=prod_db_pass
    

    保存并退出。

    您可以通过运行以下命令,使用rbenv-vars插件查看为应用程序设置的环境变量:

    rbenv vars
    

    如果你改变你的秘密,数据库密码,更新.rbenv-vars文件。 请小心保持此文件为私有,并且不要包含任何公共代码存储库。

    创建生产数据库

    现在您的应用程序配置为与您的PostgreSQL数据库通信,让我们创建生产数据库:

    RAILS_ENV=production rake db:create
    

    注意:如果出现PG::ConnectionBad: FATAL: Peer authentication failed for user "user1",需要修改下配置:
    修改 /etc/postgresql/9.5/main/pg_hba.conf

    sudo vim /etc/postgresql/9.5/main/pg_hba.conf
    
    图片.png

    修改保存,重新启动pg

    sudo service postgresql restart
    
    

    后继续执行上面的创建生产数据库命令

    现在运行此命令来更新生产数据库:

    RAILS_ENV=production rake db:migrate
    

    您还应预先编译资产:

    RAILS_ENV=production rake assets:precompile
    

    注意:如果出现Yarn executable was not detected in the system.

    配置config/environments/prouction.rb
    因为默认开发环境资源编译是关闭,所以要开启

      config.assets.compile = true
    

    要测试应用程序是否工作,可以运行生产环境,并将其绑定到服务器的公共IP地址(替换服务器的公共IP地址):

    RAILS_ENV=production rails server --binding=120.77.45.76
    

    配置安全组

    阿里云上有个安全组设置,可以控制ip的访问,如果没有配置的话,以上的是不能访问的


    图片.png
    安装redis

    step1:下载

    wget http://download.redis.io/releases/redis-4.0.8.tar.gz
    

    step2:解压

    tar zxvf redis-4.0.8.tar.gz
    

    step3:复制,放到usr/local/redis目录下(先创建redis目录)

    sudo mv redis-4.0.8/* /usr/local/redis/
    

    step4:进入redis目录

    cd /usr/local/redis/
    

    step5:生成

    sudo make
    

    step6:测试,这段运行时间会较长

    sudo make test
    

    注意:如果make test不过,运行

    sudo apt-get install tcl
    

    step7:安装,将redis的命令安装到/usr/bin/目录

    sudo make install
    

    step8:配置文件,移动到/etc/目录下
    配置文件目录为/usr/local/redis/redis.conf

    sudo cp /usr/local/redis/redis.conf /etc/redis/
    

    setp9:修改/etc/redis/中的配置文件
    是否以守护进程运行
    如果以守护进程运行,则不会在命令行阻塞,类似于服务
    如果以非守护进程运行,则当前终端被阻塞
    设置为yes表示守护进程,设置为no表示非守护进程
    推荐设置为yes

    daemonize yes
    
    配置 navicat premium 能连接到服务器的pg数据库

    https://www.qcloud.com/community/article/499397 可以参考这篇文章

    图片.png
    接下来,我们还要开启 PostgreSQL 允许通过 TCP/IP 进行连接的特性。这主要通过 postgresql.conf 配置文件控制,该文件和 pg_hba.conf 处于同一目录下。
    sudo vi /etc/postgresql/9.5/main/postgresql.conf
    
    图片.png

    修改保存后,重启pg数据库

    sudo service postgresql restart
    

    然后连接


    图片.png

    配置rails在后台运行

    配置config/puma.rb

    daemonize true
    

    相关文章

      网友评论

          本文标题:Ruby&Rails---Rails5在ubuntu16.04配

          本文链接:https://www.haomeiwen.com/subject/tjeeixtx.html