mod_railsをインストール
メインマシンをWindowsからLinuxに変えたので開発環境を入れ直しています。で、いい機会なのでちょっと気になっていたPassenger(mod_rails)を入れてみました。
インストール
まずはRubyGemをインストール、aptのパッケージが古いのでアップデート。続いてRails、Apache、MySQLもインストール。
#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