2008年3月18日アーカイブ

結局、portsからwww/mod_proxy_htmlを入れてみた。
最初、何故かapache2.0がインストールされてはまる。
apache2.0をアンインストールすると、apxsとか上書きされてたapache2.2のファイルが消されてしまいさらにはまる。
apache2.2を再インストールしてなんとか元に戻る。(この過程でapache-2.2.6からapache-2.2.8にバージョンアップされて、aprをアンインストールする必要があったりした)
すると、再度mod_proxy_htmlを入れてもちゃんとapache2.2のディレクトリに入った。
で、いろいろ設定をいじってみたけど、結局思惑通りには動かず。と言うか、ログを見てみてもmod_proxy_htmlが効いているように見えない。なんでだろう。

あきらめて、fastladder は別名のVirtualHostで動かすことにして、今度はStore::Fastladder に取り掛かる。
% svn co http://svn.bulknews.net/repos/plagger/branches/fastladder-crawler/plagger/ fastladder-crawler
でStore::Fastladder を持ってくる。
面倒なので、portsのPlaggerとか、Plaggerのtrunkにリンク張ったりとかせずに、とりあえずチェックアウトしてきたディレクトリで動かしてみることに。
# ってゆーか、Plaggerってまだかなりな勢いで開発されているので、portsとかでシステムに入れるよりも、plaggerを動かす個人ユーザのディレクトリにsvnで持ってきた方が良いかも知れない。
で、以下のようなfastladder.yamlを書いて、
global:
  timezone: Asia/Tokyo

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: file://var/www/docs/mt/pc/feed.xml ←とりあえず内部のrss
  - module: Store::Fastladder
    config:
      connect_info:
        - dbi:mysql:fastladder_production
        - root
        - mysqlのrootのパスワード
        - on_connect_do:
            - SET NAMES utf8
      member_id: 1
以下のコマンドで実行
% fastladder-crawler/plagger -c fastladder.yaml
すると、
Base class package "DBIx::Class::Schema::Loader" is empty.
なんて言われたので、portsから databases/p5-DBIx-Class-Schema-Loader をインストール。なんか設定画面が出てきたので、とりあえずSqlite3とmysqlとpostgresqlを選んだ。
依存関係でかなりたくさんのパッケージが入ったもよう。
もう一度実行してみたら、今度は
DBIx::Class::InflateColumn::set_inflated_column(): Couldn't load DateTime::Format::MySQL
とか言われるので、devel/p5-DateTime-Format-MySQL をインストールする。
すると、無事にplaggerの実行が終わった。
どきどきしながらfastladderのページでReloadを押してみたら、出てきてます!
でも、日本語が化けてーら。
さて、何が悪いのか切り分けないといけません。
とりあえず、
% mysql -p fastladder_production
mysql> \s
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
どうも、データベースがlatin1になっているようです。
mysqladmin dropして、mysqladmin create --default-character-set=utf8 とかやってみましたが、やっぱりlatin1のまま。
mysqlわかんねーよとか思いつつ、/var/db/mysql/my.cnfを修正します。[mysqld]セクションに以下の行を追加。
default-character-set = utf8
で、データベースを作り直して、rake db:migrateしたら無事に日本語も化けなくなりました。
これで、fastladder.yamlに好きなfeedを追加して、cronとかに仕込めばブラウザさえあればいつでもどこでもfeedが読めちゃいます。
さよなら、Sage、さよなら、livedoor Reader。
gmailに送ってるCustomFeed::MixiScraperもfastladderに入れちゃおうかしらん。

さて、浮かれてばかりいないで今後の課題です。
  • mongrelがrootで動いているのは気持ち悪いので、fastladder用のアカウントを作ってそちらで動かすようにする。
  • mysqlのDBをmysqlのrootでアクセスするのは気持ち悪いので、fastladder用のmysqlアカウントを作ってそちらを使うようにする。
  • せっかくFastladderの画面でsubscribeできるのに、それが効かないのは悲しいので、fastladder.yamlに反映する方法を考える。(これが一番ハードル高いな)
本格運用に向けて、もうちょっとセキュリティとか考えた設定にする。
  1. fastladderを実行するOSユーザを作る
    # adduser
    Username: fastladder
    Full name: fastladder
    Uid (Leave empty for default):
    Login group [fastladder]:
    Login group is fastladder. Invite fastladder into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh nologin) [sh]:
    Home directory [/home/fastladder]: /var/www/fastladder
    Use password-based authentication? [yes]: no
    Lock out the account after creation? [no]:
    Username   : fastladder
    Password   : 
    Full Name  : fastladder
    Uid        : 3134
    Class      :
    Groups     : fastladder
    Home       : /var/www/fastladder
    Shell      : /bin/sh
    Locked     : no
    OK? (yes/no): y
    adduser: INFO: Successfully added (fastladder) to the user database.
    Add another user? (yes/no): no
    Goodbye!
    
  2. mysqlのユーザを作る(fastladder_productionデータベースは(1)で作った)
    # mysql -p
    mysql> grant all on fastladder_production.* to fastladder@localhost identified by 'パスワード';
    
  3. fastladderディレクトリのオーナーをfastladderユーザにする。
    # chown -R fastladder:fastladder /var/www/fastladder
    
  4. fastladder/config/database.yaml のusernameとpasswordをrootからfastladderのものに変える。
  5. /usr/local/etc/rc.d/fastladder を以下の内容で作成する。(postgresqlを参考に作った)
    #!/bin/sh
    
    # PROVIDE: fastladder
    # REQUIRE: LOGIN
    # KEYWORD: shutdown
    #
    # Add the following line to /etc/rc.conf to enable fastladder:
    #
    #  fastladder_enable="YES"
    #  # optional
    #  fastladder_flags="-b 127.0.0.1 -e production -d"
    #
    # This scripts takes one of the following commands:
    #
    #   start stop
    
    prefix=/var/www/fastladder
    command=${prefix}/script/server
    
    . /etc/rc.subr
    
    load_rc_config fastladder
    
    # set defaults
    fastladder_enable=${fastladder_enable:-"NO"}
    fastladder_user=fastladder
    fastladder_flags=${fastladder_flags:-"-b 127.0.0.1 -e production -d"}
    
    name=fastladder
    rcvar=`set_rcvar`
    command_args="${fastladder_flags}"
    
    start_cmd='su -l ${fastladder_user} -c "exec ${command} ${command_args}"'
    stop_cmd='kill `cat /var/www/fastladder/tmp/pids/mongrel.pid`'
    
    run_rc_command "$1"
    
    /etc/rc.confでfastladder_enable="YES"して、/usr/local/etc/rc.d/fastladder start で起動する。
  6. plaggerのfastladder.yamlのdatabaseの設定も、fastladderユーザに書き換える。
  7. plaggerの関連ファイルもfastladderオーナーに変更して、fastladderユーザのcrontabに仕込む。
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月17日です。

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

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

Powered by Movable Type 6.1.1