プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

mod_railsをインストール

メインマシンをWindowsからLinuxに変えたので開発環境を入れ直しています。で、いい機会なのでちょっと気になっていたPassenger(mod_rails)を入れてみました。

インストール

まずはRubyGemをインストール、aptのパッケージが古いのでアップデート。続いてRailsApacheMySQLもインストール。

 #apt-get update
 #apt-get check
 #apt-get install rubygems 
 #gem update --system
 #gem install rails --include-dependencies 
 #apt-get install apache2
 #apt-get install mysql-server
 #apt-get install mysql-client

で、Passengerをインストール。

 #gem pristine --all
 #gem install passenger
 #passenger-install-apache2-module
 
 * GNU C++ compiler... found at /usr/bin/g++
 * Ruby development headers... found
 * OpenSSL support for Ruby... not found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * Apache 2... found at /usr/sbin/apache2
 * Apache 2 development headers... not found
 * Apache Portable Runtime (APR) development headers... found
 * fastthread... found

パッケージが足りてなかったので追加インストール。

 #apt-get install apache2-devel
 #apt-get install ruby-openssl

インストールは無事終了。

設定

インストール終了時にhttpd.confの設定内容が表示されるので、そのまま設定してみたところ、下記エラーが出てしまいました。

 Routing Error
 No route matches "/rails/info/properties" with {:method=>:get}

しばらくハマってたんですが、httpd.confに"RailsEnv development"という設定が足りなかったことが判明。最終的に下記のような設定内容でhttp://rails/にアクセスして無事Railsアプリを起動できました。

httpd.conf
 LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so
 
 RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
 RailsRuby /usr/bin/ruby
 RailsEnv development
 
 <VirtualHost *:80>
  ServerName rails
  DocumentRoot "/var/www/html/test/public"
 </VirtualHost>
/etc/hosts
 127.0.0.1               localhost.localdomain localhost
 127.0.0.1               rails