WEBサイト制作
2015.08.27
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環境構築後からを想定した手順となります。
Contents
作業するユーザーを追加する
すでにユーザーがある場合は飛ばして下さい。# 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/まとめ
今回のコラムを書くにあたってCentOS環境構築後、実際にコラムに書いた手順で環境構築を行い、どこでエラーが起きるか検証を行いながら作成しました。
手順通りやってみてエラーが出た箇所もありましたが、そのエラーが出た場所を把握することができました。
このコラムを見て、環境構築の際に詰まった方、一から勉強したいと思っている方がスムーズに構築できるようになればと思います。
参考サイト
・[CentOS 6.5]ユーザー追加してrbenvをシステムにインストールするまでの手順
・システムのgemにrailsをインストールせずrails newする
・Ruby on Railsで初めてアプリを作ってみる #1 -railsのセットアップ
・therubyracerのbundle installでこける
・いつも忘れる「Railsのgenerateコマンド」の備忘録