ぽんぽんぽぽぽん

”ぽん”が色々書きます。(ITのことや、ソシャゲ、スロットのこととかw...etc)

PHPからruby on railsに環境を切り替えてみる(共存)

こんにちは。ぽんです。

やっぱりruby!?ってことで今までずっとPHPを使って開発をしてきましたが、

本格的にrailsに乗り換えようと決心した。

本格的に導入したことがなかったので今更ながらrailsのインストールまでをメモ。

OSはvagrant上のCentOS

WebSVはnginxにしたいところだけどapache

RDBMSmysql

で既にPHPが乗っている環境にrailsのインストールまでして画面表示までを行う。

rubyをインストールしないと話にならないのでrbenvを利用してrubyをインストールする

① rbenvのインストール

$ cd
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

次に環境変数の設定

$ echo 'export PATH=$HOME/.rbenv/bin:$PATH' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l

$ rbenv -v
rbenv 0.4.0-183-gc18a3f9

rbenvのインストール完了!

ただ、rbenvだけではrubyのインストールが簡単に行えないためruby-buildをインストールする必要がある

ruby-buildのインストール

$ cd
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

次にインストールしたいrubyを確認

$rbenv install --list
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302
  1.8.7-p334
  1.8.7-p352
  1.8.7-p357
  1.8.7-p358
  1.8.7-p370
  1.8.7-p371
  1.8.7-p374

↑ こんな感じでいっぱいでてくる。 こっから選んでコマンドうつだけでインストールは完了!なんて便利!

rubyのインストール

とりあえず今回は2.2.0をインストール

$ rbenv install 2.2.0

結構時間かかるので、コーヒーでも飲みながらネットサーフィン。やべ。まとめおもしれ

お、気付いたら終わってた!

ということで使用するrubyのバージョンを指定する

$ rbenv rehash
$ rbenv global 2.2.0
$ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]

こう表示されれば問題無くインストール完了

railsのインストール!

$ gem install rails

はいエラー

nokogiriがうんたらかんたらと怒られる。

調べた結果これでいけるらしい。

$ gem install nokogiri -- --use-system-libraries

もう一度

gem install rails

ほほぉ!入った!

$ rbenv exec rails -v
Rails 4.2.4

railsプロジェクトの作成

$ cd [railsプロジェクトを作成したいディレクトリ]
$ rails new example -d mysql

MySQLを利用のため あ、なんか失敗した。。

mysql2のgem installでこけてる。。

ふむ。mysql-develが足りないと。ということで

$ sudo yum install mysql-devel

$ gem install mysql2

よし!!!!そしてはい、もういちど〜

$ rails new example -d mysql

おっけ!とおった!

exampleというプロジェクトのディレクトリができているはず

Rails環境をApache上で動かすにはPhusion Passengerというのが必要らしい

⑥ gemでPassengerをインストール

$ gem install passenger
Fetching: passenger-5.0.21.gem (100%)
Building native extensions.  This could take a while...
Successfully installed passenger-5.0.21
Parsing documentation for passenger-5.0.21
unable to convert "\x88" from ASCII-8BIT to UTF-8 for src/cxx_supportlib/vendor-modified/boost/thread/future.hpp, skipping
unable to convert "\x97" from ASCII-8BIT to UTF-8 for src/cxx_supportlib/vendor-modified/boost/utility/declval.hpp, skipping
Installing ri documentation for passenger-5.0.21
Done installing documentation for passenger after 52 seconds
1 gem installed

⑦ passenger-install-apache2-moduleを実行

$ cd .rbenv/versions/2.2.0/bin
$ ./passenger-install-apache2-module

--------------------------------------------

Installation instructions for required software

 * To install Curl development headers with SSL support:
   Please install it with yum install libcurl-devel

 * To install Apache 2 development headers:
   Please install it with yum install httpd-devel

 * To install Apache Portable Runtime (APR) development headers:
   Please install it with yum install apr-devel

 * To install Apache Portable Runtime Utility (APU) development headers:
   Please install it with yum install apr-util-devel

If the aforementioned instructions didn't solve your problem, then please take
a look at our documentation for troubleshooting tips:

  https://www.phusionpassenger.com/library/install/apache/
  https://www.phusionpassenger.com/library/admin/apache/troubleshooting/

ほいエラー。言われたとおりにインストール

もういっちょ

$ ./passenger-install-apache2-module

--------------------------------------------
Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /home/marisa/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /home/marisa/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.21
     PassengerDefaultRuby /home/marisa/.rbenv/versions/2.2.0/bin/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.


--------------------------------------------

終わったっぽい。

↑ これをapacheの設定ファイルに貼れと命令されたので社畜ばりにいうことを聞いてみる。

publicディレクトリにとりあえずindex.htmlをおいて接続テストしてみる。

うごいた!!!!!

よし、こっからガッツリやるか。