大阪のホームページ制作会社 i.M.Design INFORMATION MEDIA DESIGN ロゴ

06-6809-5021

Columnコラム

WEBサイト制作

2015.08.27

CentOS6での環境構築後にRuby on Rails4でhello world! 的なアプリケーションを作成する方法。

CentOS6での環境構築後にRuby on Rails4でhello world! 的なアプリケーションを作成する方法。

CentOS環境構築後にRuby on Rails4による hello world! 的なアプリケーションを作成していきます。
ローカル環境はVirtualBoxのCentOS-6.7、rubyのバージョンはruby公式のページに現在の安定版は 2.2.3となっているので2.2.3を入れていきます。
CentOS環境構築後からを想定した手順となります。

作業するユーザーを追加する

すでにユーザーがある場合は飛ばして下さい。
# useradd hoge
# passwd hoge

ユーザーをwheelグループに追加する

作成したユーザーでsudoを使うためにwheelグループに追加します。
# gpasswd -a hoge wheel

sudoを使えるようにする

visudoコマンドを使ってwheelグループのユーザーがsudoを使えるように設定します
# visudo -f /etc/sudoers.d/00_base
%wheel ALL=(ALL) ALL #wheelグループに所属するユーザーがsodoできるようにする
Defaults !secure_path #sudo時のPATHの初期値を設定する secure_path を無効化
Defaults env_keep += "PATH RBENV_ROOT" #操作ユーザーのPATHとRBENV_ROOTを引き継ぐ
※sudoが使えるようになったので、これ以降は一般ユーザーで操作していきます。

rbenvでrubyをインストールする

・作業用の環境変数を設定する。

$ export RBENV_ROOT=/usr/local/rbenv
$ export PATH=${RBENV_ROOT}/bin:${PATH}

・gitをインストールしてrbenvとruby-buildを取得する。

$ sudo yum install git #gitをインストールする
$ sudo git clone git://github.com/sstephenson/rbenv.git ${RBENV_ROOT}
$ sudo git clone git://github.com/sstephenson/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build

・rbenvを初期化する。

$ sudo rbenv init -

・設定ファイルにrbenv用の設定を追加する。

$ sudo bash -c 'cat << \_EOT_ > /etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
_EOT_'

・シェルを再起動する

$ exec ${SHELL} -l

rubyインストールの前に足りないパッケージをインストールする

$ sudo yum install -y openssl-devel readline-devel zlib-devel
※このパッケージをインストールせずにrbenv install 2.2.3を行うとエラーが出たので先にインストールする必要があります。

・Rubyをインストールする

今回は冒頭でもお伝えしたrubyのバージョン2.2.3をインストールします。
$ sudo rbenv install 2.2.3
$ sudo rbenv global 2.2.3
$ sudo rbenv rehash

・bundlerをインストールする

$ sudo gem install bundler --no-ri --no-rdoc
$ sudo rbenv rehash
※bundlerインストール後はプロジェクトごとにGemを管理する方が良いので、システムのgemにrailsをインストールせずrails newする

Ruby on Railsのインストール

・新規フォルダを作成する

$ mkdir hello_rails
$ cd hello_rails

・Gemfileを作成する

Gemfileを作成して、Railsをインストールするための記述を有効化します。
$ bundle init
$ vi Gemfile

- #gem "rails"
+ gem "rails"

・Bundlerを使ったGemパッケージのインストールする

以下のコマンドでRailsをインストール。
システムにインストールすると混乱のもとなので、`–path`オプションをつけてプロジェクトディレクトリ内にインストールするように指定しておきます。
$ bundle install --path vendor/bundle

Railsプロジェクト作成する

・ローカルディレクトリにRailsプロジェクトを作成します。

※ローカルディレクトリにGemをインストールした場合はGemのコマンド実行時に`bundle exec`をつける必要があります。
$ bundle exec rails new .
       exist  
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
    conflict  Gemfile
Overwrite /home/hgoto/rails/hello_rails/Gemfile? (enter "h" for help) [Ynaqdh] 
上記のようにGemfileがすでに存在するので上書きするか確認されます。
RailsのGemfileを利用したいので`Y`を押して上書きします。

・Gemfileのtherubyracerを有効化します。

あとでエラーになる可能性があるのでJavaScriptエンジンのtherubyracerをインストールします。
$ vi Gemfile

- #gem 'therubyracer', platforms: :ruby
+ gem 'therubyracer', platforms: :ruby

・bundle install前に足りないパッケージをインストールする

$ sudo yum install -y ruby20-devel sqlite-devel gcc-c++
※このパッケージをインストールせずにbundle installを行うとエラーが出たので先にインストールする必要があります。

・bundle installする

Gemfileに更新があれば、未インストールのgemがインストールされます。
$ bundle install

・rails generateコマンドでファイルを生成します。

rails generateコマンドはコントローラ、モデル、テスト等のアプリケーションの土台などを自動生成してくれます。
今回は「scaffold」で作成します。scaffoldジェネレータを実行すると下記ファイルが生成されます。
「scaffold」の詳しい説明はこちらのサイトをご参考下さい。
$ bundle exec rails generate scaffold users name:string
invoke active_record create db/migrate/20150826085018_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml invoke resource_route route resources :users invoke scaffold_controller create app/controllers/users_controller.rb invoke erb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit invoke jbuilder create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder invoke assets invoke coffee create app/assets/javascripts/users.coffee invoke scss create app/assets/stylesheets/users.scss invoke scss identical app/assets/stylesheets/scaffolds.scss

・DBを作成する

rails generateで生成したマイグレーションファイルを実行します。
$ bundle exec rake db:create
$ bundle exec rake db:migrate

・raisサーバーを起動する

bundle exec rails s

・下記URLにアクセスすると、作成したページが表示されます。

http://localhost:3000/users/

helloworld

まとめ

今回のコラムを書くにあたってCentOS環境構築後、実際にコラムに書いた手順で環境構築を行い、どこでエラーが起きるか検証を行いながら作成しました。
手順通りやってみてエラーが出た箇所もありましたが、そのエラーが出た場所を把握することができました。
このコラムを見て、環境構築の際に詰まった方、一から勉強したいと思っている方がスムーズに構築できるようになればと思います。

参考サイト

[CentOS 6.5]ユーザー追加してrbenvをシステムにインストールするまでの手順
システムのgemにrailsをインストールせずrails newする
Ruby on Railsで初めてアプリを作ってみる #1 -railsのセットアップ
therubyracerのbundle installでこける
いつも忘れる「Railsのgenerateコマンド」の備忘録

この記事を共有する