apache2.2.22とpassengerとrailsのインストール
apache2.4もあったが、持っている本(Apache クックブック)だと2.2だし、ネットに落ちてる資料も2.2は多いし、aptで入るのでとりあえず2.2にした。
$ sudo aptitude install apache2 $ gem install passenger $ passenger-install-apache2-module (書いてあることをよく読みながらやる)/etc/apache2/conf.d/passenger というファイルを、先のコマンドで出た内容(LoadModule周り)で作成する。自分の環境では以下。
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/apache2/mod_passenger.so PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19 PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p392/ruby
で、とりあえずVirtualHostを/etc/apache2/sites-availableの中に設定して、a2ensite・・・をしたのだが、以下のようなエラーが吐かれた。めん。
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:", LC_ALL = (unset), LANG = "ja_JP.UTF-8" are supported and installed on your system.あ、はい。
ということで、以前のエントリに書いた内容( localeがubuntuでうまく設定されてなかった)を参照。
再度sudo a2ensite hogeしてls /etc/apache2/sites-enabledにリンクがあればOKなので、sudo service apache2 reloadして読み込む。これでapache/passengerはok.
あとrailsを入れる。
$ ruby -v ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux] $ gem install railsCould not find a JavaScript runtime 〜〜〜 $ rails -v Rails 3.2.12
あとは動作確認。適当なディレクトリにrailsプロジェクトを動かして、パーミッションをwww-data向けに変えてからpublicをDocumentRootにするようVirtualHostを変更。
$ rvmsudo rails new /var/local/railstest $ sudo vi /etc/apache2/sites-available/hoge $ sudo service apache2 reload $ sudo vi /var/local/railstest/public/index.htmlでもなんかpassengerがエラーを吐く。javascriptのエンジン足りないとかなんとか。これこの間見た気がする。execjsとtherubyracerがあればいいらしい。
$ gem list (足りないものを確認→execjsはあったけどtherubyracerはない) $ gem install therubyracerで、該当プロジェクトのGemfileに以下を追加。
gem 'execjs' gem 'therubyracer'で、
No route matches [GET] "/"とかいうRoutingErrorが出ていれば、まぁ動いているでしょう。