2008年4月20日日曜日

passengerで初めてのRoR(1)

RoRを使ってみたいと思いmod_passengerを入れてみる

とりあえず、gemなんてコマンドはないので、ソースをDLしてコンパイルすることに

http://www.modrails.com/install.html

tar xzvf passenger-1.0.1.tar.gz

./passenger-1.0.1/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... not found
* Rake... not found
* Apache 2... found at /usr/local/sbin/httpd
* Apache 2 development headers... found at /usr/local/sbin/apxs
* Apache Portable Runtime (APR) development headers... found
* fastthread... not found

なんかエラーが出てとまった。gemは必要らしい。

仕方ないので、以下からDL、インストール
http://docs.rubygems.org/

tar xzvf rubygems-1.1.1.tgz
ruby setup.rb

インストール完了。コマンド名はgem18らしい

ついでにnot foundなRakeとfastthreadをインストール。gem大活躍

gem18 install rake --remote
gem18 install fastthread --remote
gem18 install rails

もう一度インストーラーを起動して、Enter何度か押してインストール完了(たぶん)

./passenger-1.0.1/bin/passenger-install-apache2-module

インストール完了メッセージメモ
--------------------------------------------
The Apache 2 module was successfully installed.

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

LoadModule passenger_module /usr/local/src/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/local/src/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/local/bin/ruby18

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.


--------------------------------------------
Deploying a Ruby on Rails application: an example

Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host
to your Apache configuration file, and set its DocumentRoot to
/somewhere/public, like this:


ServerName www.yourhost.com
DocumentRoot /somewhere/public


And that's it! You may also want to check the Users Guide for security and
optimization tips and other useful information:

/usr/local/src/passenger-1.0.1/doc/Users guide.html

Enjoy Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

srcディレクトリを参照するのも微妙なので、コピー

cp /usr/local/src/passenger-1.0.1/ext/apache2/mod_passenger.so /usr/local/libexec/apache22/
cp /usr/local/src/passenger-1.0.1/bin/passenger-spawn-server /usr/local/lib/ruby/passenger/


httpd.confファイルに以下を追記
LoadModule passenger_module /usr/local/libexec/apache22/mod_passenger.so
RailsSpawnServer /usr/local/lib/ruby/passenger/passenger-spawn-server
RailsRuby /usr/local/bin/ruby18


ServerName xxxx.reirou.jp
DocumentRoot "/path/to/project/public"
RailsEnv "development"
RailsBaseURI /

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all



これで再起動

サーバーバージョンのところにPhusion_Passenger/1.0.1 って記載が出てきたので、とりあえずの
インストールは完了。のはず

と思って xxx.reirou.jp を開くもエラーが出るのでちょっと悩む。

Passenger error #2
Passenger thinks that the Rails application's "public" directory is "/path/to/project/public", but it doesn't seem to be valid.

結局railsのプロジェクト?を作ってないかららしい、
/path/to で以下のコマンドを入力して一応画面は表示された。

#rails プロジェクト名

と画面は出たけど、[About your application’s environment] をくりっくするとInternalServerError・・・

とりあえず、それはおいておいて、sqlite3を入れておくgem18 install sqlite3-ruby

WEBrick「./script/server」を使って試すと動作するので、問題はPassengerにある模様・・・

眠いのでまた明日。