初めてのRuby!!Passenger(mod_rails)をとりあえず入れてみて

今まで、Rubyっていうものは聴いたことはあったけど、一度も触ったことがなかった。
なんとなく、Ruby on Railsには興味はあったし、どんなものかも知っていたけど、
実行環境を作るのが面倒くさそうだった。

が、なんかmod_railsというのが出たらしい。
結構簡単に、環境が作れるらしい。

ということで、早速インストールしてみることにした。

前提:
以下が既にインストール済みとする。
Apache2
Ruby 1.8以降?

まず、どうやらRuby関係の何かを入れるためにgemsというのが必要らしい。
ということで、インストール。
aptであったので、さっくりとaptから。

# apt-get install rubygems

あとで、知ったことだがここでとりあえずgemsをアップデートしておいた
ほうがいいらしい。(たぶん)
(自分の場合は失敗して、再インストールすることになってしまった)

# gem update –system

でさっそく、Passenger(mod_rails)をインストールしようとしたら・・・。

# gem install passenger
Bulk updating Gem source index for: http://gems.rubyforge.org
ERROR:  While executing gem … (Gem::GemNotFoundException)
    Could not find passenger (> 0) in any repository 

なんか怒られてしまった。
どうやら、railsを先にいれないといけないらしい。
Railsってつまりは、Ruby on RailsをやるためのFrameworkかな?

ということで、さっくりとインストール。
これも、gemsから出きるらしい。

# gem install -v=2.0.2 rails -y
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-2.0.2
Successfully installed rake-0.8.1
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Installing ri documentation for rake-0.8.1…
Installing ri documentation for activesupport-2.0.2…
Installing ri documentation for activerecord-2.0.2…
Installing ri documentation for actionpack-2.0.2…
Installing ri documentation for actionmailer-2.0.2…
Installing ri documentation for activeresource-2.0.2…
Installing RDoc documentation for rake-0.8.1…
Installing RDoc documentation for activesupport-2.0.2…
Installing RDoc documentation for activerecord-2.0.2…
Installing RDoc documentation for actionpack-2.0.2…
Installing RDoc documentation for actionmailer-2.0.2…
Installing RDoc documentation for activeresource-2.0.2…

気を取り直して、Passenger(mod_rails)のインストール。
これもやっぱり、先ほどと一緒でgemsから。

# gem install passenger
…………
complete
Install required dependency fastthread? [Yn]  y
Select which gem to install for your platform (i386-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
Building native extensions.  This could take a while…
Building native extensions.  This could take a while…
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 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…

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
/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
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:246: warning: already initialized constant XHTML_PREAMBLE
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:289: warning: already initialized constant HEADER
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:310: warning: already initialized constant FOOTER
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:335: warning: already initialized constant FILE_PAGE
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:384: warning: already initialized constant CLASS_PAGE
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:604: warning: already initialized constant METHOD_LIST
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:621: warning: already initialized constant BODY
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:640: warning: already initialized constant SRC_PAGE
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:649: warning: already initialized constant FR_INDEX_BODY
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:675: warning: already initialized constant FILE_INDEX
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:677: warning: already initialized constant CLASS_INDEX
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:678: warning: already initialized constant METHOD_INDEX
/usr/lib/ruby/1.8/rdoc/generators/template/html/html.rb:704: warning: already initialized constant INDEX

で仕上げに、以下をやらないといけないらしい。

# passenger-install-apache2-module
—-
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
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/apxs
 * Apache Portable Runtime (APR) development headers… found at /usr/bin/apr-1-config
 * fastthread… found
——————————————–

——————————————–
Compiling and installing Apache 2 module…
cd /var/lib/gems/1.8/gems/passenger-1.0.5
rake clean apache2
(in /var/lib/gems/1.8/gems/passenger-1.0.5)
### In ext/apache2:
rm -rf Utils.o Logging.o Configuration.o Hooks.o mod_passenger.o mod_passenger.so

rm -r pkg
### In ext/passenger:
make clean
rm -f Makefile

### In ext/boost/src:
rm -f libboost_thread.a *.o

### In test:
rm -f Apache2ModuleTests *.o

### In benchmark:
rm -f DummyRequestHandler

### In ext/boost/src:
g++ -O2 -fPIC -I../.. -D_REENTRANT -DNDEBUG  -c *.cpp
ar cru libboost_thread.a *.o
ranlib libboost_thread.a

### In ext/apache2:
g++ -I.. -fPIC -g -DPASSENGER_DEBUG -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -m32 -march=i386 -mcpu=i686 -I/usr/include/apache2 -D_REENTRANT -Wall -g -I/usr/local/include  -c mod_passenger.c

### In ext/apache2:
g++ -I.. -fPIC -g -DPASSENGER_DEBUG -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -m32 -march=i386 -mcpu=i686 -I/usr/include/apache2 -D_REENTRANT -Wall -g -I/usr/local/include  -c Utils.cpp

### In ext/apache2:
g++ -I.. -fPIC -g -DPASSENGER_DEBUG -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -m32 -march=i386 -mcpu=i686 -I/usr/include/apache2 -D_REENTRANT -Wall -g -I/usr/local/include  -c Logging.cpp

### In ext/apache2:
g++ -I.. -fPIC -g -DPASSENGER_DEBUG -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -m32 -march=i386 -mcpu=i686 -I/usr/include/apache2 -D_REENTRANT -Wall -g -I/usr/local/include  -c Configuration.cpp

### In ext/apache2:
g++ -I.. -fPIC -g -DPASSENGER_DEBUG -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -m32 -march=i386 -mcpu=i686 -I/usr/include/apache2 -D_REENTRANT -Wall -g -I/usr/local/include  -c Hooks.cpp

### In ext/apache2:
g++ -shared Utils.o Logging.o Configuration.o Hooks.o mod_passenger.o -fPIC -o mod_passenger.so   -lstdc++ -lpthread ../boost/src/libboost_thread.a -lapr-1

### In ext/passenger:
ruby extconf.rb
creating Makefile

### In ext/passenger:
make
gcc -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I.  -fPIC -O2 -m32 -march=i386 -mcpu=i686  -fPIC  -c native_support.c
gcc -shared -rdynamic -Wl,-export-dynamic   -L'/usr/lib' -Wl,-R'/usr/lib' -o native_support.so native_support.o  -Wl,-R -Wl,/usr/lib -L/usr/lib -L. -lruby  -lpthread -ldl -lcrypt -lm   -lc

——————————————–
The Apache 2 module was successfully installed.

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

   LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so
   RailsSpawnServer /var/lib/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
   RailsRuby /usr/bin/ruby

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:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public
   </VirtualHost>

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

  /var/lib/gems/1.8/gems/passenger-1.0.5/doc/Users guide.html

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

すばらしい。
エラーもなく案外あっさりとインストールできてしまった。
しかも、最後に、httpd.confの設定例まで表示された。

httpd.confの設定は後回しにして。
ついでに、RubyとMySQLを連携させるためのモジュールらしきものもいれておく。
(これが必要なのかは確認していない・・・)

# apt-get install MySQL-ruby

これできっと完璧。
ということで、httpd.confの編集。

# vim /etc/apache2/conf/httpd.conf
(以下を追加)
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so
RailsSpawnServer /var/lib/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby

ということで、Apacheを再起動。

# service apache2 restart

ということで、一通りインストールは完了した。



Popularity: 5% [?]

DiggGoogle BookmarksGoogle ReaderFacebookDeliciousFriendFeedEvernoteTwitterShare
  1. No comments yet.

  1. No trackbacks yet.