2008年3月17日アーカイブ

と、言うわけでオープンソース版のfastladderのインストール。
まだうまく行っていないんだけど、書いておけば誰か教えてくれるかも知れないので。
  1. portsから、databases/mysql50-server をインストール。(既に入っていた。今は5.1もあるらしい)
    ※ 既に入っていたので設定系は割愛。
  2. portsから、lang/ruby18, devel/ruby-gems, databases/ruby-mysqlをインストール。(既に入っていた)
  3. portsから、graphics/freeimageをインストール。ただし、現時点のものでは正しくライブラリが入らないので、ここを参考にライブラリを入れなおす。
  4. fastladderのソースを持ってくる
    % svn co http://fastladder.googlecode.com/svn/trunk/fastladder
    
    ※ 以降は、fastladder/INSTALL.txtに従ってやるんだけど、DBをSqlite3じゃなくてmysqlを使う場合は手順が微妙に違う。
  5. まずは、gem関係をインストール。(portsから入れると、railsのバージョンが古いので、INSTALL.txt通りに手でやる必要がある。また、gemsのバージョンが古いとrails2.0.2が入らなかったので、portupgrade ruby18-gemsしておく)
    # gem install rails --version 2.0.2 -y
    # gem install rfeedfinder
    # gem install feed-normalizer
    # gem install opml
    # gem install mongrel
    
    mysqlを使うのでsqlite3-rubyは必要ない。
  6. config/database.yml を修正
    # cp config/database.yml.mysql config/database.yml
    # vi config/database.yml
    
    production: の所を適宜修正
    production:
      adapter: mysql
      encoding: utf8
      database: fastladder_production
      username: root
      password: mysqlのrootのパスワード
      socket: /tmp/mysql.sock ←FreeBSDのportsからmysqlを入れるとここ
    
  7. databaseを作る
    # mysqladmin -p create fastladder_production
    # RAILS_ENV=production rake db:migrate ←cshだとこの書き方できない
    
ここまでで、とりあえず本体のインストールは完了。
# script/server -d -e production
でサーバが起動するので、http://localhost:3000/ とかでアクセスできる。初回はアカウントの作成画面なので、作っておく。
INSTALL.txtだと、ここでcrawlerも起動しろと書いてあるけど、crawlerは使わないでPlaggerのStore::Fastladderを使う予定なので無視。

本格運用のためには、mongrelの3000直アクセスではなく、apacheのhttps経由にしたい。
apache2系であれば、mod_proxyを使ってmongrelにリクエストが飛ばせるようだ。
しかし、ここで問題が発生。
  • mongrel上のrailsアプリは、/ で動くことを期待している。
  • mongrel上のrailsアプリは、http:// で動くことを期待している。
ようなのだ。
2番目の問題については、apacheの設定に
RequestHeader set X_FORWARDED_PROTO 'https'
を入れることで対応できることがわかった。
しかし、1番目の問題の対応がわからない。調べてみたところ、mongrelの起動時に --prefix をつけると、変えられるらしいことがわかったが、fastladder/script/server は --prefixを解釈してくれない。
ただし、script/serverを実行すると、中ではmongrelを起動しているだけのようなので、直接
/usr/local/bin/ruby18 /usr/local/bin/mongrel_rails start -p 3000 -a 127.0.0.1 -e production -P /var/www/fastladder/tmp/pids/mongrel.pid -d --prefix /fastladder
のように起動してやると、--prefixがつけられた。 apacheの設定ファイルのsslの部分に、以下を追加。
    ProxyRequests off
    <Location /fastladder>
        SSLVerifyClient require ←httpsのクライアント認証を要求
        ProxyPass http://127.0.0.1:3000/fastladder
        ProxyPassReverse http://127.0.0.1:3000/fastladder
        RequestHeader set X_FORWARDED_PROTO 'https'
    </Location>
これで、https://・・・/fastladder がmongrelに行くようになる。
んだけど、fastladder がこいつをちゃんと認識してくれない。
  1. ブラウザから、https://・・・/fastladder にアクセス。
  2. railsがリクエストを受け取り、reader コントローラの welcome アクションを実行。
  3. https://・・・/login にリダイレクト(https://・・・/fastladder/login を期待している)。
  4. そんなページはないのでブラウザに404。
うーん、mongrelの--prefixだけじゃ駄目で、config/route.rb もいじらないといけないのかな。
と言う所ではまってしまって進みません。railsが全然わからないので、自分でいくつかサンプルでも作ってみないと駄目かな。

ちなみに、/fastladderとかつけなければ動くので、今までのwebサーバと喧嘩しないように、新しいホスト名をdnsでつけてあげて、virtualhostを作ればうまく動きます。
この場合、一つのIPで二つのSSL証明書が使えないので、fastladderの方は「証明書とホスト名が合わないんだけど」的なエラーがブラウザに出ます。
どうせオレオレ証明書だし、気にしなければ良いのですが、やはり気持ち悪い。
2008年3月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

このアーカイブについて

このページには、2008年3月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月15日です。

次のアーカイブは2008年3月18日です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1