ぬにょす(挨拶)。
VPS上のUbuntu Server 18.04 LTSにRuby on Railsのプロジェクトを作成し、クライアントのブラウザからドメイン名でアクセスできるようにします。
ちなみに私のWebでの母国語はPHPなのでRoRはもとよりRubyはかなりカタコトです。
RoRのセットアップも初めてです。
レッツチャレンジ♪
rbenvのインストール・設定
rbenvを使ってシステム環境を汚さずユーザー環境にRubyをインストールする方法がスタンダードのようなので、先にrbenvをインストールGitHubのリポジトリからクローンします。
以下を参考にrbenvとruby-buildを導入しました。
【2019.03.23修正】以下のaptによるインストールはお手軽ですが、インストールできるRubyのバージョンが古かったり、~/.rbenv 以下の構成がgithubで公開されているものと異なるため一部のgemでうまく動かなかったりします。オススメしません(笑)。
Code language: plaintext (plaintext)$ sudo apt install rbenv
~/.bashrcに魔法の呪文を追記します。
Code language: plaintext (plaintext)$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
~/.bashrcを再読み込みします。
Code language: plaintext (plaintext)$ source ~/.bashrc
$PATH変数を確認すると~/.rbenv/shimsへのパスが追加されているはずです。
Code language: plaintext (plaintext)$ echo $PATH /home/hogehoge/.rbenv/shims:/usr/local/sbin:/usr/…
Rubyのインストール
インストール可能なRubyのバージョンを確認してみます。
Code language: plaintext (plaintext)$ rbenv install -l
ずらーっとバージョン番号が表示されます。
2.4.1が最新のようなので、インストールします。
Code language: plaintext (plaintext)$ rbenv install 2.4.1 Downloading ruby-2.4.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.bz2 Installing ruby-2.4.1... Installed ruby-2.4.1 to /home/hogehoge/.rbenv/versions/2.4.1
ソースをダウンロードしてmakeしてるようで、それなりに時間がかかりました。
インストールしたバージョンを有効化して各コマンドをチェックしてみます。
Code language: plaintext (plaintext)$ rbenv global 2.4.1 $ rbenv version 2.4.1 (set by /home/hogehoge/.rbenv/version) $ ruby --version ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] $ gem --version 2.6.11
良さげですね。
依存モジュールとbundlerのインストール
続いてRailsに必要なNode.jsとSQLite3、およびRubyのプロジェクト構成管理ツール(?)であるbundlerをインストールします。
Code language: plaintext (plaintext)$ sudo apt install nodejs sqlite3 $ gem install bundler --no-document $ rbenv rehash
Railsのインストール
Railsのプロジェクトディレクトリを作成します。
Code language: plaintext (plaintext)$ mkdir ~/hello-rails $ cd ~/hello-rails $ bundle init Writing new Gemfile to /home/hogehoge/hello-rails/Gemfile
Gemfileを編集します。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails" # <- コメントアウトを解除
Code language: Ruby (ruby)
プロジェクト配下のvendor/bundleにRailsをインストールして初期化します。
Code language: plaintext (plaintext)$ budle install --path vendor/bundle $ bundle exec rails new . -B ### 省略 ### Overwrite /home/hogehoge/hello-rails/Gemfile? (enter "h" for help) [Ynaqdhm]Y
起動してみます。
Code language: plaintext (plaintext)$ bundle exec rails s Could not find gem 'sqlite3' in any of the gem sources listed in your Gemfile. Run `bundle install` to install missing gems.
Gemfileを編集して、sqlite3にバージョンを追記します。
Code language: plaintext (plaintext)gem 'sqlite3', '> 1.3.6'
もういっちょbundle installしてから起動します。
Code language: plaintext (plaintext)$ bundle install $ bundle exec rails s => Booting Puma => Rails 5.2.2.1 application starting in development => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.12.1 (ruby 2.4.1-p111), codename: Llamas in Pajamas * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://localhost:3000 Use Ctrl-C to stop
Listen状態になりましたが、localhostなので外部からはアクセスできません。
Nginxの設定
起動が確認できたのでCtrl-Cして、localhost:3000にNginxを通じてアクセスできるようにNginxの設定を変更します。
Nginxのインストールは以下の記事に書いてます。
Ubuntu Server 18.04 LTSにNginxとPHPをインストールする
ドメイン名でのアクセスをlocalhost:3000に渡すよう設定します。
server {
server_name example.com;
location / {
proxy_pass http://localhost:3000;
}
}
Code language: Nginx (nginx)
設定を確認してNginxを再起動します。
Code language: plaintext (plaintext)$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo systemctl reload nginx.service
再度Railsを起動して、クライアントのブラウザでアクセスするとRailsの初期ページが表示されました。
コメント