さんさろ

Webエンジニアの雑記&技術、たまにドイツ

Ruby on Rails5 のローカル環境出来た!

ローカル環境

Progate で Ruby on Rails5 のレッスンを終えたので、今度はローカルで環境作りました。

最終的に出来た環境はこんな感じ。

環境

 

Apacheのモジュールは passenger なるツールを使って準備しました。いまいち passenger が何者か分かってませんが、コマンド叩いてあとは指示通りにすれば Apacheruby 使うためのモジュールが使えるようになっているという優れもの。

いいツールが揃ってますねー。

余談ですけど、CentOS7 は主要なコマンドすら変わってたりして色々と地味に時間を取られるので、もうローカルの標準は CentOS6.9 でいいんじゃないかなーと思ったりして。。。

 

Ruby on Rails5 のプロジェクト作るまでの手順

叩いたコマンド全て載せようかと思いましたが、色々足りないものがあったりディレクトリの権限が足りなくて寄り道したりして、あんまりスマートでない感じだったので、大雑把な手順だけメモ代わりに載せることにします。

今回は、Apache2.2 で ruby2.4.3 を使う方法です。あと、gem 使って rails 入れて、プロジェクトの新規作成する所まで行きました。

 

  1. rbenv を clone してくる

  2. rbenv コマンドが使えるように、パスを通す

  3. rbenv のプラグイン rbenv-build を clone してくる

  4. インストール出来る ruby のバージョン確認したら、ruby をインストールして、使うバージョンを指定
    - 最新の 2.5.0 入れようとしたらエラー。どうやら ruby のバグっぽい?

  5. 必要なパッケージ(bundlerとか)を入れる

  6. passenger を入れる

  7. passenger を使って Apache のモジュールを準備
    - ここで足りないパッケージがあるよーってインストールのコマンド付きで警告が出たので、一旦コンソールに戻って寄り道

  8. Apache の設定ファイルに準備したモジュールを使うように設定追加して、バーチャルホストを追加して、Apache再起動

  9. gem 使って rails を入れる
    - mysql の関連パッケージ?も gem で入れようと思ったら mysql-devel が足りなくてまた寄り道

  10. nodejs が無いと ruby は動かないらしいので、これも入れる

  11. rails プロジェクト新規作成

 あとは hosts に書いて、アクセス。

出来たーーー!!

紆余曲折しなくても環境作れるようになったら、その内コマンドとか詳しい解説とか入れながらまた記事書きたいです。

 

気になった所

  • rbenv を入れるのに、今回は /user/local の下に入れたんですけど、なんかディレクトリの権限が足りなくてコケる事があったんですよね。~/.rbenv に入れるとするサイトがあったりして、そっちでも良かったのかな?と思ったり。Apache はどっちにしても vagrant ユーザで起動してるから、~/.rbenv の方が権限の問題がなくてよかったんじゃないかなーと思ったり。次はそれで試してみよう。
  • CentOS6.9 で rbenv-build を使って ruby2.5.0 をビルドしようとしたら、変なエラーが出てちょっと詰まった。調べて見たら、Ruby のサイトにチケット立ってた。

    Bug #14234: Failed to build on CentOS 6.9 - Ruby trunk - Ruby Issue Tracking System

    もしかして ruby のバグとかそういうやつだったのかな……。結局バージョンを ruby 2.4.3 に落としたらうまくいきました。

 

 参考にしたサイト

http://kimagureneet.hatenablog.com/entry/2016/08/31/180636

 

 

さーてもりもり

アプリ作るぞー。今回はイベントとかの告知サイト?のCMSっぽいものを作ってみようかと。

しかし、.ignore に入れるべきものを最初から入れといて欲しいもんだ。。。そのためのGit 管理するべき .sample ファイルとか最初から作っておいてほしいもんだ。。。とか言ったらいけないんですよね、すみません。

アプリは GitHubリポジトリ作ってバージョン管理する予定。

うちの会社では書かないテストを、今回は勉強しながら書くのだ……自動テストとか出来るようにするのだ……!