Vagrant + Nginx + Ruby on Railsを動かしてみる
かなり遅まきながら、Rubyに触れる機会がありVagrantでのセットアップまでを試してみました。 RubyをVagrantにインストールし、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をインストール
$ 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'のコメント解除
- sqlite3をインストールする
$ cd myapp $ bundle install // リトライする
bundleのインストールパスについて
後々知ったのですが、bundle管理のパスは設定でき、プロジェクト下のvendor/bundleに保持するのが定石のようです。
$ bundle install --path vendor/bundle
こちらを実行することで、プロジェクト下に.bundle/configファイルとvendor/bundleディレクトリが作成されます。 プロジェクト単位でパッケージ管理ができ、本来用途に近しい実装ができます。
rails serviceを起動
こちら最後につまずきました。 localhostがruby専用だったら問題ないかと思いますが、今回は既存を残しつつ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も使ってみたのですが、非常に便利に使えそうです。
ここまでおこなうと、基底も含めてRailsのコードをメソッドジャンプできるようになります。 最初にフレームワークを把握するのに便利そうなので、ぜひとも最初に設定してみましょう。