と、言うわけでオープンソース版の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の方は「証明書とホスト名が合わないんだけど」的なエラーがブラウザに出ます。
どうせオレオレ証明書だし、気にしなければ良いのですが、やはり気持ち悪い。

追記
どうも、fastladderのソースを読んだ感じではmod_proxyでは行けそうにない。
mod_proxy_htmlを使うと行けそうな感じだけど、試してみるのも面倒だなあ。
一応、portsから入れるならwww/mod_proxy_html にあるようだ。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: fastladderインストール(1)

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1419

コメント(3)

sumikawa :

ports/graphics/freeimage
のパッチを書きました。ついでにバージョン上げてます。
動作確認していただけませんか。
問題なければcommitします。
http://www.don.to/tmp/freeimage.patch

false :

パッチをあてて、portupgrade freeimage をしてみました。
今の所fastladder自身があまりうまく動いていないので、freeimage自体の動作確認はできていないのですが、/usr/local/lib/libfreeimage.*を見る限りでは正しく入っているようです。

ありがとうございました。

sumikawa :

レポートありがとうございます。
commitしました。

コメントする

このブログ記事について

このページは、falseが2008年3月17日 13:11に書いたブログ記事です。

ひとつ前のブログ記事は「PlaggerLDRかFastladderか」です。

次のブログ記事は「fastladderインストール(2)」です。

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

広告

Powered by Movable Type 6.1.1