Passengerを入れる
そろそろ落ち着いてきたころかなと思って、Passenger(mod_rails) を Ubuntu に入れてみました。
インストール
インストールこれだけです。
$ s gem install passenger $ s passenger-install-apache2-module
だらだらとしたインストール
例によって例の如く、失敗を含めたインストール経過はこんな感じです。いきなり passenger のインストールから始めてしまいます。
$ s gem install passenger
Install required dependency fastthread? [Yn] Y Select which gem to install for your platform (i486-linux) 1. fastthread 1.0.1 (mswin32) 2. fastthread 1.0.1 (ruby) 3. fastthread 1.0.1 (i386-mswin32) 4. Skip this gem 5. Cancel installation > 2 Successfully installed passenger-1.0.5 Successfully installed fastthread-1.0.1 Installing ri documentation for passenger-1.0.5... Installing ri documentation for fastthread-1.0.1... No definition for dummy_dump No definition for rb_queue_marshal_load No definition for rb_queue_marshal_dump Installing RDoc documentation for passenger-1.0.5... Installing RDoc documentation for fastthread-1.0.1... /usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:25: warning: already initialized constant FONTS /usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:235: warning: already initialized constant STYLE
なにやら、warning が出てますが、インストールはちゃんとできてそうです。次に passenger-install-apache2-module を実行すると足りないものを教えてくれるはず。
$ s passenger-install-apache2-module
sudo: passenger-install-apache2-module: command not found
いきなり「そんなコマンドない!」で蹴られました。おかしいな、やっぱさっきの warning のせいで passenger がちゃんと入らなかったのかもしれない。こういうときは、uninstall してからやり直しだ。
$ s gem uninstall passenger Successfully uninstalled passenger version 1.0.5 Remove executables and scripts for 'passenger-spawn-server, passenger-install-apache2-module, passenger-config, passenger-memory-stats, passenger-make-enterprisey' in addition to the gem? [Yn] Y Removing passenger-spawn-server Removing passenger-install-apache2-module Removing passenger-config Removing passenger-memory-stats Removing passenger-make-enterprisey
れれ、passenger-install-apache2-module スクリプトも削除されるよって言ってるってことは、やっぱり入ってんじゃん。2回目はなにも聞かれずインストールOK。
$ s gem install passenger
Successfully installed passenger-1.0.5
Installing ri documentation for passenger-1.0.5...
Installing RDoc documentation for passenger-1.0.5...
passenger-install-apache2-module を探してみる。
$ s find / -name passenger-install-apache2-module
/var/lib/gems/1.8/gems/passenger-1.0.5/bin/passenger-install-apache2-module
/var/lib/gems/1.8/bin/passenger-install-apache2-module
やっぱ、あるな。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
これが原因か。/var/lib/gems/1.8/bin にパスが通ってないからか。でもここには rails とか rake なんかが入ってて、いままで普通に使ってたからパスが通ってないなんてちょっと考えられないけどなぁ。なんかやって PATHを初期化しちゃったかな。とりあえず、PATHを追加しておく。
$ export PATH=$PATH:/var/lib/gems/1.8/bin
で、passenger-install-apache2-module に再チャレンジ。
$ s passenger-install-apache2-module
sudo: passenger-install-apache2-module: command not found
ああ、こっちの PATH を変えても、sudo の PATH は変わらないのか(s printenv で確認)。
「sudo の PATH はセキュリティ上変えられない」という意見や「いや、root でログインして ~/.bash_profile に書けば?」とかググルといろいろあったんだけど、どれもうまくいかず。だいたい、端末からの root ログインは禁止してるし。ということで、今回1回のみのことなのでフルパスで指定することに。何回も使うスクリプトだったらシンボリックリンク張るけどね。
$ s /var/lib/gems/1.8/bin/passenger-install-apache2-module Welcome to the Passenger Apache 2 module installer, v1.0.5. This installer will guide you through the entire installation process. It shouldn't take more than 3 minutes in total. Here's what you can expect from the installation process: 1. The Apache 2 module will be installed for you. 2. You'll learn how to configure Apache. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort. 1 ← ここは 1を選択 Checking for required software... * GNU C++ compiler... not found * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... not found * Apache 2... found at /usr/sbin/apache2 * Apache 2 development headers... not found * Apache Portable Runtime (APR) development headers... found * fastthread... found Some required software is not installed. But don't worry, this installer will tell you how to install them. Press Enter to continue, or Ctrl-C to abort.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
「GNU C++ compiler」と「Rake」、「Apache 2 development headers」がないって教えてくれてるんだけど、「Rake」はパスが通ってないだけであるので、シンボリックリンクを張ることにして、他の2つを入れることにする。
$ s apt-get install build-essential 取得:1 http://jp.archive.ubuntu.com gutsy/main libstdc++6-4.1-dev 4.1.2-16ubuntu2 [1129kB] 取得:2 http://jp.archive.ubuntu.com gutsy/main g++-4.1 4.1.2-16ubuntu2 [2600kB] 取得:3 http://jp.archive.ubuntu.com gutsy/main g++ 4:4.1.2-9ubuntu2 [1440B] 取得:4 http://jp.archive.ubuntu.com gutsy/main patch 2.5.9-4 [95.6kB] 取得:5 http://jp.archive.ubuntu.com gutsy/main dpkg-dev 1.14.5ubuntu16 [162kB] 取得:6 http://jp.archive.ubuntu.com gutsy/main build-essential 11.3ubuntu1 [7066B] 未選択パッケージ libstdc++6-4.1-dev を選択しています。 未選択パッケージ g++-4.1 を選択しています。 未選択パッケージ g++ を選択しています。 未選択パッケージ patch を選択しています。 未選択パッケージ dpkg-dev を選択しています。 未選択パッケージ build-essential を選択しています。
$ s ln -s /var/lib/gems/1.8/bin/rake /usr/bin/rake
$ s apt-get install apache2-prefork-dev 取得:1 http://jp.archive.ubuntu.com gutsy/main libldap2-dev 2.1.30-13.4 [227kB] 取得:2 http://jp.archive.ubuntu.com gutsy/main libexpat1-dev 1.95.8-4ubuntu1 [129kB] 取得:3 http://jp.archive.ubuntu.com gutsy-updates/main libdb4.4-dev 4.4.20-8.1ubuntu3.1 [546kB] 取得:4 http://jp.archive.ubuntu.com gutsy-updates/main libpcrecpp0 7.4-0ubuntu0.7.10.2 [91.0kB] 取得:5 http://jp.archive.ubuntu.com gutsy-updates/main libpcre3-dev 7.4-0ubuntu0.7.10.2 [251kB] 取得:6 http://jp.archive.ubuntu.com gutsy-updates/main uuid-dev 1.2-1.40.2-1ubuntu1.1 [49.6kB] 取得:7 http://jp.archive.ubuntu.com gutsy/main libapr1-dev 1.2.7-8.2ubuntu1 [337kB] 取得:8 http://jp.archive.ubuntu.com gutsy/main zlib1g-dev 1:1.2.3.3.dfsg-5ubuntu2 [160kB] 取得:9 http://jp.archive.ubuntu.com gutsy-updates/main libkadm55 1.6.dfsg.1-7ubuntu0.1 [148kB] 取得:10 http://jp.archive.ubuntu.com gutsy-updates/main comerr-dev 2.1-1.40.2-1ubuntu1.1 [40.6kB] 取得:11 http://jp.archive.ubuntu.com gutsy-updates/main libkrb5-dev 1.6.dfsg.1-7ubuntu0.1 [88.6kB] 取得:12 http://jp.archive.ubuntu.com gutsy-updates/main libpq-dev 8.2.7-0ubuntu0.7.10 [347kB] 取得:13 http://jp.archive.ubuntu.com gutsy/main libaprutil1-dev 1.2.7+dfsg-2build1 [117kB] 取得:14 http://jp.archive.ubuntu.com gutsy-updates/main apache2-prefork-dev 2.2.4-3ubuntu0.1 [410kB] 取得:15 http://jp.archive.ubuntu.com gutsy-updates/main libssl0.9.8 0.9.8e-5ubuntu3.2 [2825kB] 取得:16 http://jp.archive.ubuntu.com gutsy-updates/main libssl-dev 0.9.8e-5ubuntu3.2 [1943kB] 未選択パッケージ libldap2-dev を選択しています。 未選択パッケージ libexpat1-dev を選択しています。 未選択パッケージ libdb4.4-dev を選択しています。 未選択パッケージ libpcrecpp0 を選択しています。 未選択パッケージ libpcre3-dev を選択しています。 未選択パッケージ uuid-dev を選択しています。 未選択パッケージ libapr1-dev を選択しています。 未選択パッケージ zlib1g-dev を選択しています。 未選択パッケージ libssl-dev を選択しています。 未選択パッケージ libkadm55 を選択しています。 未選択パッケージ comerr-dev を選択しています。 未選択パッケージ libkrb5-dev を選択しています。 未選択パッケージ libpq-dev を選択しています。 未選択パッケージ libaprutil1-dev を選択しています。 未選択パッケージ apache2-prefork-dev を選択しています。
これでもう1回 passenger-install-apache2-module をやってみる。
$ s /var/lib/gems/1.8/bin/passenger-install-apache2-module Checking for required software... * GNU C++ compiler... found at /usr/bin/g++ * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/bin/rake * Apache 2... found at /usr/sbin/apache2 * Apache 2 development headers... found at /usr/bin/apxs2 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config * fastthread... found
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
で、OK。あとはここに書いてある LoadModule 定義を /etc/apache2/httpd.conf に書くだけ。
あとはパラメータなどの調整が必要。
参考
Passengerの導入関係はいろいろあるのでどこを参考ということはないですが、以下にいくつかあげておきます。
- 最初に参考にしたのがこちら(→http://rails20.jp/2008/04/passenger/)でしょうか。わかりやすいです。
- こちら(→Passenger (mod_rails for Apache) を使ってRedmineを動かしてみたよ! - 元RX-7乗りの適当な日々)もかなり初期の段階から参考にさせていただいてます。
- こちら(→Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用)もよくまとまっていてわかりやすいです。
- こちら(→大徳日記 » mod_rails試してみました。)はバーチャルホストでのプロセスについての記述があります。
- こちら(→Passenger (mod_rails) を入れてみた | ネコの箱舟 ~Ark the Cats~)には入れたあとのルーティングの例がいくつかあります。
- http://d.hatena.ne.jp/koush/20080419/1208569776
- http://bitmap.dyndns.org/blog/archives/001551.html
- http://doruby.kbmj.com/yoppi_on_rails/20080417/Passenger__mod_rails_for_apache_
- http://labs.zsrv.net/content/view/58/44/
- http://brass.to/blog/mod_rails_memory.html