「さくらのVPS」にPassengerをインストール
ひょんなことから、「さくらのVPS」のレビュー記事を、INTERNET Watchに執筆しました。
えらく楽しい(なにより速い!)サービスで、ノリノリで書きました。文章がノリノリに見えなければ、悪いのは文章力ということで。
記事中、共用サーバーではできないネタとして、Passengerをインストールする話を例として入れました。まぁFastCGIでもmod_proxyでもTomcatでもよかったんですが、「ApacheにRailsを入れる」の一言で説明が済みそうだったので。
ついでなので、その手順をメモ。まぁようするに、よくある、CentOSでPassengerを動かす手順です。
Rubyをインストール
CentOS 5.xのRubyはRuby 1.8.5なので、さすがにRailsを動かすには古かろうと、ソースからビルド。ついでなので1.9.2で。
$ sudo yum install openssl-devel zlib-devel readline-devel $ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.tar.bz2 $ tar xf ruby-1.9.2-p0.tar.bz2 $ cd ruby-1.9.2-p0 $ optflags='-O3 -pipe' ./configure --prefix=/opt/ruby $ make -j2 $ make test $ sudo make install $ PATH=$PATH:/opt/ruby/bin
Railsをインストール
ついでなのでRails 3.0など。
sqlite3-rubyは、最新の1.3系をインストールしようとするとCentOSのsqliteが古いと言われるので1.2.5を指定。それでいいのかとか、PassengerでSQLiteかよとか、突っ込みどころはありますが、まぁサンプルなので。
$ sudo make install sqlite-devel $ sudo gem install sqlite3-ruby --version 1.2.5 $ sudo gem install rails
Railsアプリを作る
「WEB+DB Press」の記事の最初のままというか、scaffoldするだけのアプリを作成。まずはWEBRickで正常に動作することを確認。iptablesでポートを閉じているなら、サーバー上のw3mなり、sshトンネリング経由なりでチェック。
$ rails new blog_app $ cd blog_app $ rails generate scaffold post title:string body:text $ rake db:migrate $ rails server
動いてるっぽければproduction環境のrake db:migrate。
$ rake db:migrate RAILS_ENV=production
Passengerをインストール
というわけでPassengerをインストール
$ sudo yum install httpd-devel apr-devel $ sudo gem install passenger $ sudo passenger-install-apache2-module
passenger-install-apache2-moduleの途中で表示された設定例を元に、/etc/httpd/conf.d/passenger.confとか作ってコピー。いっぽう、さきほどのRailsアプリは/var/www/railsとかそのへんにコピー(ホームディレクトリのパーミッションを開けるのもナンなので)。
$ sudo mkdir /var/www/rails $ sudo cd blog_app /var/www/rails $ sudo chmod -R apache:apache /var/local/rails
で、Apacheを起動。
$ sudo /sbin/service httpd start
めでたしめでたし。
で、これを書いて気付いたんですが、広い意味ではVPSじゃなくてherokuでもできるネタだったかなと。まぁいいや。
変更2010.09.08:/var/local/rails→/var/www/rails。いやなんとなく。
コメント
コメントの投稿
トラックバック
https://emasaka.blog.fc2.com/tb.php/807-bdc24627