実行環境:
CentOS 5.7
sqlite3 5.7.4
ruby 1.9.3
Rails 3.1.3
新しいマシンにOSからインストールしたので Rails を使えるようにするまでのメモです。CentOS 5.7
sqlite3 5.7.4
ruby 1.9.3
Rails 3.1.3
checkinstall をインストール
これからインストールするアプリケーションは yum で入れられないものが多いので、ソースをダウンロードしてきて入れる訳ですが、直にインストール(直接 make install)すると消したくなったときに大変なのでRPM化してからインストールしたいところ。そのRPM化をしてくれるツールがcheckinstallです。使い方は簡単で、通常のインストール手順で
# ./configure # make # make installとするところを、「make install」に変えて「checkinstall -R」コマンドをうちます。
# ./configure # make # /usr/local/sbin/checkinstall -R-R オプションはRPMパッケージを作ってくれという指示です。(-R を指定しないと途中でどんなパッケージを作るか聞かれますのでそこで RPM と答えてもいいです。)後はデフォルトの選択肢を選んでいけば(リターンキー連打で)大丈夫です。
うまく行けば「/usr/src/redhat/RPM/i386/」ディレクトリに RPM ファイルができますので、後はそれを rpm コマンドでインストールすればOK。
# rpm -ivh /usr/src/redhat/RPM/i386/**********.rpmもしアンインストールしたくなったら
# rpm -e **********.rpmこんな感じで消せます。
使い方がなんとなく分かったところで、まずは checkinstall 自体を入れてあげないといけません。
まずはwebからソースを取ってきて普通にインストールします。
# cd /usr/local/src #<== このフォルダにソースを展開する # wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz # tar zxvf checkinstall-1.6.2.tar.gz # cd checkinstall-1.6.2 # make # make installこれでインストール完了。
なんだけど、後々のために RPM 化して上書きインストールします。
# /usr/local/sbin/checkinstall -R #<== 上からの続きでまだ checkinstall-1.6.2 ディレクトリにいます。いろいろなことを言ってきますが、基本的にデフォルトの返事でOKなのでリターンキーで進みます。
ほいでもって、RPM化できたら rpm コマンドでそのファイルをインストールします。
# cd /usr/src/redhat/RPMS/i386 # rpm -ivh checkinstall-1.6.2-1.i386.rpm
sqlite3 3.7.4をインストール
CentOS5の標準でインストールされるsqlite3のバージョンが 3.3.x とちょっと古いのでアップデートします。 sqlite3 自体が古いと ruby 用の sqlite3 アダプタの新しいものがインストールできないので rails を入れる前にアップデートしておきます。 でも yum でインストールできるのは全然新しくないので、ソースをダウンロード ⇒ checkinstall ⇒ rpm の流れでインストールします。# cd /usr/local/src # wget http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz # tar xzvf sqlite-autoconf-3070400.tar.gz # cd sqlite-autoconf-3070400 # ./configure # /usr/local/sbin/checkinstall -R # rpm -ivh /usr/src/redhat/RPMS/i386/sqlite-autoconf-3070400-1.i386.rpm
いよいよ ruby 1.9.3 のインストール
ruby 1.9.3 のインストールには、事前に libyaml-devel が必要との情報をゲットしたので、先にインストールしておきます。# yum install libyaml-devel次は本丸の ruby です。
# cd /usr/local/src # wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz # tar zxvf ruby-1.9.3-p0.tar.gz # ./configure # makeんで、ここから checkinstall で RPM 化したいのですが、やってみると途中で止まったようにえらい時間がかかるようです。 Web上の評判だと8~10時間くらいかかるそう。そんなに待ってられないのでここはやむなく直にインストールします。ちぇっ。
# make install
Ruby on Rails 3.1.3 のインストール
Rails のインストールですが、ruby と一緒に gem コマンドがインストールされるのでそれを使います。# gem install railsさらに必要なものを gem で入れます。
# gem install sqlite3
Railsアプリケーションの公開(デプロイ)
デプロイには passenger を使いたいと思います。Apache のモジュールとして組み込めるので、システムを再起動しても勝手に起動してくれるので楽ちんです。 インストールは gem で行います。# gem install passengerそしてビルドとインストールを次のコマンドで実施します。
passenger-install-apache2-moduleiryoこのコマンドの最後の方で、httpd.conf に追記する設定が表示されるので、それをコピーして httpd.conf の末尾にペーストします。(下記の内容は使っている環境によって異なるので注意)
LoadModule passenger_module /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so ailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.9.1/bin/passenger-3.0.11 RailsRuby /usr/local/bin/ruby
次にアプリケーションを設定します。
1つのサーバで複数のアプリケーションを走らせたいと思います。
実現方法はざっくりと
① VirtualHost を複数設定してアプリケーション毎に1つの VirtualHost を割り当てる方法
② Host は単一として、DocumentRoot にサブディレクトリを切ってアプリケーション毎にサブディレクトリを割り当てる方法
が考えられます。
最終的には趣味の問題ですが、ここでは②のやり方で行きたいと思います。
Webの公開ディレクトリ内の構成は、3つのRailsアプリケーション(MyApp1, MyApp2, MyApp3)があるとしたら
DocumentRoot ├─ MyApp1 #<== MyApp1のpublicディレクトリのシンボリックリンク ├─ MyApp2 #<== MyApp2のpublicディレクトリのシンボリックリンク └─ MyApp3 #<== MyApp3のpublicディレクトリのシンボリックリンクというような形にします。
httpd.confの末尾にそれぞれの Rails アプリケーションのURI的パスを記載します。
これで httpd を再起動すればOKです。 RailsBaseURI /MyApp1 RailsBaseURI /MyApp2 RailsBaseURI /MyApp3
# /etc/rc.d/init.d/httpd restart
0 件のコメント:
コメントを投稿