自分用めも

初心者ちっくなプログラムネタを中心に、自分用の覚え書きをメモっていくための場所です。

vmware上にruby on rails環境を構築した時に詰まったこと

先人の知恵を漁っただけですが…

前提: rubyruby on railsのインストール

rails環境構築(CentOS + ruby on rails) - Qiita
依存関係のあるパッケージ、環境変数の設定、ruby-buildのインストールまでは
こちらの方法で行いました。

誰でも出来るRuby on Railsの環境構築手順 - Qiita
ruby及びruby on railsのインストールはこちらを参考に、
現在の最新版(ruby 2.3.2及びruby on rails 5.0.0.1)をインストールしています。

詰まったこと

1. テストアプリケーションがビルド出来ない

rails new app

上記でテストアプリケーションを作ろうとするも、

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

こんなエラーが出て完了してくれない。

原因はsqlite3が無いことでした。

An error occurred while installing sqlite3 (1.3.12), and Bundler cannot continue.

ビルド時に明示的にDBを指定していない場合はsqliteを使うことになるようで、
肝心のsqlitelinuxにインストールしていないために落ちていたようです。

yum -y install sqlite
yum -y install sqlite-devel

これでインストールし、再度rails new appでエラー無くビルドが完了しました。

2. テストアプリケーションが起動しない

無事ビルドが終わって喜んだのもつかの間、
起動しようとすると下記のようなエラーが表示されました。

Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

これも既知のエラーのようです。
rails sコマンド実行時に「Could not find a JavaScript runtime.」とエラーが出る場合の対処法 - ponkiti's blog
対処は少し面倒なのですが、作成したアプリケーションのrootディレクトリにある
Gemfileに下記行を追記することで、問題なく起動するようになります。

vim Gemfile

gem 'therubyracer'

3. 起動したアプリケーションに、ホストOSのブラウザからアクセスできない

下記のように起動した場合、railsのホストは未指定だと「localhost」になるそうです。

rails s

下記のようにオプションを付けることで、
IP指定でホストOSのブラウザからアクセスできるようになります。(ポートは3000)

rails s -b 0.0.0.0

VM上のRailsサーバにホストPCからアクセス出来ない – ZacoDesign