調べたこと、作ったことをメモしています。
こちらに移行中: https://blog.shimazu.me/

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が出ていれば、まぁ動いているでしょう。