アジャイル,Trac,オープンソースなどの話。認定スクラムマスター。Twitterは@ryuzee
相も変わらずCatalyst。
Search.cpan.orgのRSSフィードを定期的に見ていて、Catalyst関連のモジュールが出てくると一通り試してみている。
今日はとりあえずCatalyst::Log::Log4perlってのを試した。これはCatalystの中から簡単にLog4Perlを呼ぶためのモジュールである。
Webアプリの場合特に障害切り分けや開発におけるログの重要性が高いから予めモジュール内にログ出力ロジックを組み込むのは当然。しかもある程度レベル分けをしておく必要がある。なので全部print STDERR とか、自前でファイルを開いて書き込むだとかはナンセンス。
インストールはいつものように
perl -MCPAN -e shell cpan> install Catalyst-Log-Log4perl
後は、Catalystアプリの最上位クラス(Hoge)で
Hoge->log(Catalyst::Log::Log4perl->new( "/foo/bar/log4perl.conf"));
とすると、Catalyst->logのインスタンスはLog4Perlのインスタンスに置き換わる。その後は
$c->log->debug
$c->log->info
$c->log->warn
$c->log->fatal
等を使うことが出来る。またLog4Perlのインスタンス生成の際の設定ファイルで実際にどのレベルまでログを取るのか、ログの出力先を何にするのか設定が出来るから便利だ。
以下はDEBUG以下のレベルを全てファイルに吐き出す場合のLog4Perlの設定である。
log4perl.rootLogger=DEBUG, LOGFILE log4perl.appender.LOGFILE=Log::Log4perl::Appender::File log4perl.appender.LOGFILE.filename=/tmp/myerrs.log log4perl.appender.LOGFILE.mode=append log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern= [%r] %F %L %c - %m%n
そんなかんぢ。
今日はとりあえずmod_perlの実験。
Fedoraではデフォルトでmod_perl1.99が含まれているが、せっかくなので一旦削除してmod_perl2で試す。
yum remove mod_perl.i386
とやっただけで簡単にアンインストール。次に
perl -MCPAN -e shell cpan> install mod_perl2
で完了。導入できたらhttpd.confを編集して、ある拡張子だったらmod_perl2を利用するように設定する。拡張子.cgiや.plだったら全部mod_perlでも構わない気もするのだが、お行儀が悪いプログラムが動かなくなったりしそうなので、とりあえず別拡張子を設定。
LoadModule perl_module modules/mod_perl.so
<IfModule mod_perl.c>
PerlSwitches -w
<FilesMatch ".mpl$">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</FilesMatch>
</IfModule>
実際動かしたら恐ろしく早い。こりゃCGIはどんどんmod_perlだ~、とか言いたいのだが、mod_perl2は仕様変更が多そうなのとドキュメントがえらく少なそうなのが難点。
今日は奥さんが午前中外出で留守番。とりあえずClass::DBIとCatalystで遊ぶ。Ruby on Railsのビデオも見たが、俺の好きなCatalystと考え方としては差が無い気がする。もっとも細かい箇所での親切さはRailsの方が上なんだろうが、CatalystもすごいペースでHelperスクリプトやPluginが開発されており、言語のメジャー度考えてもCatalystで良いと俺は思う。
ちなみに実験した
Catalyst::Model::CDBI
Catalyst::Model::DBIC
はともにインストールに失敗。
Use of uninitialized value in split at /usr/lib/perl5/site_perl/5.8.5/Class/DBI/Pg.pm line 81.
public.testtable has no primary key at /usr/lib/perl5/site_perl/5.8.5/Class/DBI/Loader/Generic.pm line 196
とか出てヘルパースクリプトが落ちる。PostgreSQLだからなのか?
微妙にドキュメントが少ないのがイタい。
このサイトは自宅サーバで運営しているので、定期的にパッチ当てをしている。
ルータやファイヤーウォールで不要なポートは全部遮断しているので基本的には問題ないはずなのだが、それでも安全のため+趣味でパッチを当てている。
OSはFedoraCore3で、yumを使ってyum updateするだけなので簡単である。
しかし、あるタイミングから依存性が解決できなくなり、yum updateに失敗するようになってしまった。どうもlibtoolとgccの関係がおかしいみたいで、一旦yum remove libtool とした上で、yum updateを行ったら問題なく進んでいる。
該当モジュール数は704で、開始して4時間たつが、まだ200までしか進んでいない。結構かかるなぁ。早く終わらせてSQLite入れたいんだけど・・・。
ちなみに、本番業務システムでFedoraを使うのは止めたほうがいいぞ。知り合いでそれをやった奴がいるがupdateに嵌っている。Fedoraはどんどん新しくなる実験的ディストリなので。俺なら本番業務システムでフリーのOSを使うならWhiteBoxLinuxで決定。これはRedhatESと同等だから安定性も高い。
apacheの2.2が12月2日にリリースされた。
小数点1桁目のバージョンアップはそこそこ大きいバージョンアップである。今回は
・認証関連モジュールが再構成された
・キャッシュ関連のモジュールが大きく変更された
・設定ファイルのレイアウトが簡便化された
・ロードバランス用のProxyモジュールが導入された
・正規表現関連のライブラリが更新された
・フィルターの機能向上
・2Gを超えるファイルのサポート
・mod_dbdによるデータベースのサポート
などなど多数変更があった様子。
とりあえず引き続きwatchが必要だな。
追記。とりあえずインストールしてみた。
その記録はこっち。
最近フリーメールはもっぱらgmailを使ってたりしますが、これ素晴らしいよ。なんせ1人あたり使えるディスク容量が2G。絶対使い切れんくらいある。しかもWebメールのほかに普通にPOPも出来るので、外にいるときにブラウザで見て、家ではメールソフトを使うってなことも可能。
ところで、gmailは招待性なのだが、最初は招待できる人が3人までだったのに、昨日見たら100人になっている。
こんなに紹介しきれないので、アカウント欲しい人いたら連絡ください。速攻招待します。
googleってホント素敵だ。
日記 PHP オープンソース インストールマニアックス IIS Trac MySQL Perl Linux Agile・生産性向上 wordpress フリーソフト 自宅サーバ 書評 ブックマーク phpMyFaq TraM Plugin 早起き Delphi apache CakePHP Firefox Ruby eclipse セキュリティ プラグイン アジャイル mojavi Subversion Ajax/Web2.0 SQLServer Zope サーバ フレームワーク phpBB 仮想化 PostgreSQL OpenVZ scuttle CMS 文字化け 自宅 翻訳・日本語化 ApacheDS LDAP Excel 生産性向上 CodeIgniter XAMPP hacks taskfreak 修正 言語ファイル Ajax SBM ダウンロード HTML::FillInForm mod_security 情報共有