Webエンジニアの備忘録

およそ自己の作業メモとして残しております。

Vagrant + Nginx + Ruby on Railsを動かしてみる

かなり遅まきながら、Rubyに触れる機会がありVagrantでのセットアップまでを試してみました。 RubyVagrantにインストールし、Railsの新規プロジェクトを起動・ブラウザ確認するまでの工程をざっくり記載しました。

コマンドで迷ったところをメインにまとめてあるので、パッケージ不足のエラーなどは出力から判断し都度いれることで解消できると思います。

Vagrant構築

大まかな流れは以前やったので割愛します。

Rails Server起動時にport:3000を利用するので、Vagrantfileの設定を事前におこないます。 port:8080 --> 80 に加えてport:3000 --> 3000を追記します。 (わたしの手元環境ではphp/ruby/golangが混在しています…)

  • ローカルPCのVagrantfile

    config.vm.network "forwarded_port", guest: 80, host: 8080, id: "http" config.vm.network "forwarded_port", guest: 3000, host: 3000, id: "http"

Rubyをインストール

  • 以下、Vagrant内での作業になります。
  • rbenvをインストールする(これでrubyのバージョン管理をさせる)
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
  • パスを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
  • rubyバージョンを切り替える
$ rbenv install 2.3.0
$ rbenv global 2.3.0
$ rbenv rehash
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

プロジェクト構築

  • 引き続きVagrant内での作業になります。
  • まずはgemをインストールします。
    • Bundlerもここで入れてしまいました。
$ sudo aptitude install rubygems
$ gem install rubygems-update // 自分を更新
$ gem -v
2.5.1
$ gem install bundler
  • gemコマンドでrailsをインストール、プロジェクト作成
$ gem install rails
$ rails new myapp
  • 初回はbundle installでコケますので、以下のエラーに対処してリトライする
    • sqlite3をインストールする

      $ sudo apt-get install sqlite3 libsqlite3-dev

    • myapp/Gemfileでコメントされている'therubyracer'のコメント解除
$ cd myapp
$ bundle install // リトライする

bundleのインストールパスについて

後々知ったのですが、bundle管理のパスは設定でき、プロジェクト下のvendor/bundleに保持するのが定石のようです。

$ bundle install --path vendor/bundle

こちらを実行することで、プロジェクト下に.bundle/configファイルとvendor/bundleディレクトリが作成されます。 プロジェクト単位でパッケージ管理ができ、本来用途に近しい実装ができます。

rails serviceを起動

こちら最後につまずきました。 localhostruby専用だったら問題ないかと思いますが、今回は既存を残しつつport:3000を提供しているので、-bオプションで以下のIPを指定します。

vagrant: ~/myapp $ bundle exec rails server -b 0.0.0.0

こちらのブログで説明されていました。

Vagrant で Ruby on Rails 4 の環境構築 - Qiita

補足・RubyMineにてVagrantプロジェクトを設定

JetBrainのIDEを以前から利用していたのでRubyMineも使ってみたのですが、非常に便利に使えそうです。

  • Ruby SDK and Gems」の+アイコンから「new remote」を選択
  • Vagrant環境のRubyパスを指定(rbenvでバージョン管理しているので、そちらを選ぶ)

ここまでおこなうと、基底も含めてRailsのコードをメソッドジャンプできるようになります。 最初にフレームワークを把握するのに便利そうなので、ぜひとも最初に設定してみましょう。

f:id:tak_taniguchi:20160614160028p:plain