CentOS7にRuby on Railsの開発環境を構築する方法

Rails-845
Pocket

前回記事でRubyをインストールしましたので、今回はRailsをインストールします。

VagrantでRailsの開発環境を構築する場合は、Vagrantfileの編集やRailsの起動でIPアドレスを指定する必要があります。

スポンサーリンク

目次

  1. 環境
  2. Vagrant設定
  3. Railsインストール
  4. アプリ作成
  5. アプリ起動
  6. まとめ

1. 環境

  • Windows10(ホストOS)
  • CentOS7(ゲストOS)
  • Vagrant 1.9.0
  • Virtualbox 5.1.10
  • Ruby 2.4.0

2. Vagrant設定

まずはVagrantfileの編集をします。

Railsはデフォルトで3000ポートを使用しますので、3000ポートを開放する必要があります。

# Vagrantfileを編集
~~~
  # config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "forwarded_port", guest: 3000, host: 3000 # 3000ポート開放を追記

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.20" # ゲストOSのプライベートアドレスを設定
~~~

3. Railsインストール

Railsの公式通りにRailsをインストールします。

$ gem install rails
$ rails --version
Rails 5.0.1

4. アプリ作成

動作確認のため、試しにアプリを作成してみます。

エラーが表示された場合は、「4-1. トラブルシューティング」を参照ください。

$ rails new sample

4-1. トラブルシューティング

アプリ作成時にエラーが発生しましたので、対処法の紹介です。

sqlite3.h is missing

sqlite-develが入っていないことが原因です。

以下のエラー内容も出力されているため、エラー内容通りに必要なソフトウェアをインストールします。

Try 'brew install sqlite3',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path
$ yum install sqlite-devel

Gem Load Error is: Could not find a JavaScript runtime

javascript環境が入っていないことが原因です。

javascript環境は色々ありますが、今回は「nodejs」をインストールします。

nodejsの公式通りにnodejsをインストールしていきます。

拡張パッケージのEPELが必要であるため、EPELをインストールした後、nodejsをインストールします。

sudo yum install epel-release
sudo yum install nodejs

5. アプリ起動

Railsの起動は、デフォルトでは「tcp://localhost:3000」で起動します。

しかし、ホストOSからゲストOSのlocalhostには接続できません。

その為、バインドするIPアドレスを「ゲストOSのプライベートIPアドレス」または「0.0.0.0」にする必要があります。

$ rails server -b 192.168.33.20 # ゲストOSのプライベートIPアドレスで起動

Railsの起動をした後、ホストOSのブラウザで「http://192.168.33.20:3000」でアクセスします。

Railsの初期画面が表示されれば、Railsの開発環境の構築は完了です。

Rails-845

5-1. トラブルシューティング

エラーではないですが、Ruby 2.4.0でRails 5.0.1を起動すると、warningが表示されます。

warning: constant ::Fixnum is deprecaed
warning: constant ::Bignum is deprecated

Ruby 2.3までは、整数はFixnumクラスまたはBignumクラスが使用されていました。

しかしRuby 2.4では、両者の親クラスであるIntegerクラスに統合されました。

動作上は問題ないですが、warningが気になるのであれば、Ruby2.3を使用すると良いです。

6. まとめ

Vagrantを使用してRuby on Railsの開発環境を構築しました。

Railsでアプリを作成する場合は、開発環境は必要かと思います。

開発環境を構築し、Webアプリケーションを作成していきましょう。

スポンサーリンク

feedly、RSSをフォローする