May 28, 2003

JAM LOGのPHPを4.3.1に移行

ローカルサーバと同様にこちらのJAM LOGが稼働しているPismoServerのPHPも昨日書いたPHPコンパイルチュートリアルに従ってライブラリ周りから構築しなおして新規にコンパイルし、バージョンを4.3.1にアップしました。やはり自前でコンパイルするとオプションなど自由に自分仕様に出来るので気分的にも良い感じです。4.3.2系へのバージョンアップは、安定バージョンが出てからまた試すことにします。

稼働チェック用サンプルです。

PHPInfoサンプル

PHPInfoはこちらで見れます。

Sablotron-0.98によるXSLTパーシングサンプル

こちらは結構以前に作った古いやつですが、PHP-4.3.1+Sablotron-0.98の組み合わせでエラーなくパース出来るように、UTF-8で出力させるように修正してあります。一つのXMLファイルを、複数のXSLTをPHPで切り替え適用させて色々な形にデータを並べ変え、それをXHTMLに変換して出力する、ということをやっています。→(Sablotronサンプル)

GDサンプル

GDのビルトインフォントのサンプルです。→(GD-Built-in Fonts)

GDによるイメージ出力サンプルです。→(GD-Color)

Length Converter

長さを計算するサンプルです。→(Length Converter)

May 25, 2003

PHP-4.3.1 自前ビルド

昨日(2003-05-24)「PHP-4.3.2RC4」のソースからのコンパイルについて書きましたが、PostgreSQLオプションも入れてのコンパイルが上手く行ったので、ついでに「PHP-4.3.1」でもやってみました。↓

PHP-4.3.1

現在のところ上記のオプションでmake->make installし、稼働、DBとの連携など問題ありませんが、Marcさんのパッケージと比較すると、gdでのTrueTypeFontのオプションなどが欠けています。つまりこういうTrueTypeフォントの画像埋め込みのようなことが出来ない、というわけです。(ちなみにソースはこちらで紹介されています)。これを有効にするには、

  • --with-freetype-dir=DIR
  • --with-t1lib[=DIR]

などのオプションを有効にしないといけないのですが、なかなかconfigureが通りません。(まあ、個人的には多分あまり使うことはないと思う機能なので問題ないといえばそうなのですが)

反対にこの自前ソースコンパイルバージョンPHPのMarcさんのPHPパッケージに対するアドバンテージは、コマンドライン(CLI)版PHPとPEARライブラリ群が一緒に入ることです。あと、マルチバイト・正規表現関数など、サポートされていない関数の追加が出来るのも自前で作ることの利点ですね。

また、パッケージ化も試みていますが、パッケージされた「libphp4.so」のインストールテストを行ったところ、なぜかApacheにロードされず。通常のパッケージ作成のような方法ではうまく行かないのか、少し原因が分かりません。

こういうオープンソースのソフトをインストーラパッケージ化したいのは、やはり複数のマシンに入れるのに何度もコンパイルするのは時間の無駄であるし(コンパイル・インストールするのが目的ではないので)、パックして管理すれば万が一の復旧にもラクであるからです。... が、PHPはちょっと難あり、ですね(ただ単に知識・ノウハウが足りないだけだと思うんですが)。もしこれを読んだ方で、4.3.1以降のバージョンのPHPで上記のオプションの組み込みが上手く行った方、またパッケージインストーラ化が出来た方、方法・Tipsなど是非ご教示よろしくお願いします。

May 24, 2003

PHP 4.3.2 RC4

一昨日(2003-05-22)リリースされた「PHP-4.3.2RC4」をソースからコンパイル、メインマシン(PBG4-17inch)のローカルサーバにインストールして試してみています。(クリックで拡大。)↓

PHP-4.3.2RC4

私の場合MySQLが稼働、GDとマルチバイトサポートでSablotronでXMLとXSLTパースが出来れば基本はOKという感じなのでconfigureオプションは現在はとりあえず上記画像のような感じです。

これまでMarcさんのパッケージインストーラPHPに頼りっぱなしだったのですが、丁度先日USSY’Sさんのページでソースからコンパイル・インストール成功のTipsが紹介されていたので、改めてやってみようと思った次第。現在私の環境ではPostgreサポートはOFFにしてビルドしていますが、以下のようなHackが必要なようです。

(1)readline-4.3 をソースからインストール(一部ソースの変更が必要。)
(2)おまじない:sudo ranlib /usr/local/pgsql/lib/libpq.a

この(2)のおまじないがライブラリを色々インストールするなると、結構カギになりますね。とりあえずライブラリをインストールした後はranlibを打っておく、と。私の環境でも「PostgreSQLのソースからのコンパイル->稼働->オプションに含めてPHPをコンパイル」が上手く行きました。

PHPの場合ただ単に「./configure->make->make install」すれば良いという単純なものではなく、必要なライブラリをわんさと取ってきてコンパイルしてインストールしてconfigureを試してあれがないといわれればあれを探し、これがないといわれればこれを探し、エラーが出れば対処法を探しで、それをやって環境を作った後にようやく「PHPのconfigure」に辿り着けるという感じで、色々機能をつけようとすると、正直いって「ゲンナリもの」です。この分野でのMarcさんの功績は多大なものがあると改めて実感。

そんなわけで以前(といっても去年の初め頃なので、結構前の話です)SablotronによるXSLTパース機能を可にするようにしてコンパイルするのに挫折して以来PHPの自前コンパイルから逃げていたのですが、今回はSablotronの組み込みはすんなり上手く行ったので、これからはソースからの構築も少しずつやっていこうかと思っています。(この辺は日本語の記事・資料が少ないので上手く出来れば(と、もし暇があれば)後でまとめようかと考慮中。。)

今回Marcさん作のPHP-4.3.0からPHP-4.3.2RC4にバージョンを上げることで新たに気が付いた点というか問題点をいくつか発見。その一つがXML+XSLT周りですが、Marcさんのパッケージに内包されている以前のバージョンのSablotronでは上手くパースされていたeuc-jpで記述されていたXML+XSLT文書がパースされなくなりました。これは最新のPHP-4.3.2+Sablotron-0.98の組み合わせでは日本語を含む文書はUTF-8でないと解析しなくなったようでより厳密になっている感がします。あとついでに新しいPHPのおかげで今まで浮上しなかったP_BLOGの小さなバグも発見されました(苦笑)。これは早急に修正しないといけませんね。

May 22, 2003

Perl-MySQL連携用にDBIとDBDをパック

package

最近Movable Typeをローカル(Mac OS X v10.2.6)で実験(P_BLOGからMovable Typeに移行するわけではありません、念のため)していた関係で、10.2.6用に新しくPerlとMySQL連携のためのDBI+DBDをコンパイル・インストールしたりしていました。

PerlでMySQLを使うにはこのDBIという「ドライバーインターフェイス部」とDBDという「ドライバー部分」の二つをインストールしないといけないわけですが、これが結構煩雑で面倒です。そこでついでだったのでDBIとDBDをまとめてワンパックにパッケージインストーラ化してみました。ダウンロードは「Downloads」のコーナーから。

追記(2006/05/31)
DBD-DBIインストーラパッケージの配布は終了しました。

余談:BloxsomMovable Type雑感

前記のように、BloxsomとMobable Typeをここ暫くローカルで弄っていますが、やはりBlogの二大雄だけあってシステムとしての完成度が高いというか、実現したいことが明確に考えられた上に実装されていて、面白いです。個人的にテイストとしてはBloxsomの方が好きですが、Movable Typeの方はFTPを使わずにPublishを完結出来るし、管理モードがかなり作り込まれていて、万人受けしそうというか、ツボを捉えている気がします。

こういう海外産のBlogは「ジャーナルを発信」「それに対するフィードバック(コメント機能)やTrackbackにより他の人のアイディア募り、さらにそのアイディアを膨らます」という流れが根底にしっかり根付いている気がします。ドラフト「草案」作成が出来るようになっていて、公開前にワンクッション置くような(つまり、アイディアを公開前に一旦寝かしておいて練ってから公開出来る)機能などがついていることからもそういう流れが伺えます。Web Forumといわゆる「Publish」という言葉に源流がある感じですね。

P_BLOGとの比較(要:読み流しの心)

一方自分のところのJAM LOGのベースとなっているP_BLOGは、というと(比較するのは烏滸がましいですが...)、Mobable Typeなどと比べると機能など、非常にプリミティブです。記事のプレビュー機能すらまだついていません(もしユーザーから要望があれば少し考えようかと考慮中)。

これは、実はP_BLOGは、Web Forum やBBSが源流ではなく、ブラウザのブックマークを源流としているからだろう、ということに最近原点を思い出したように気がつきました。つまりもともとは

「とにかく、あっちこちから拾ったアイディア、情報、自分がふと思い付いた情報やアイディアを一元化して放り込んでおくことが出来て、ついでにバイナリデータもストック出来て、かつ検索が出来て、どこでも、どのブラウザからも引き出せるパーソナル情報ボックスが欲しい」

というのが原点です。要するに「えーっとどこだっけなんだっけ」をなくしたい、というわけですね。そしてそれをあえてWWWに公開出来る形にするのは、「もしかすると誰か同じ情報・ヒントを欲している人がいるかもしれない、だれかの役に立つかもしれない、自分でも別マシンから情報を放り込んだり引き出したい時があるかもしれない」からというわけです。

そういうルーツですので、いわゆる「日記システム」ではありません。カレンダー機能がなく、いまのところつける気がないのもそういう理由からですし、実は一番の理由は「自分が他人のWeblogを見にいった時、カレンダーをクリックして情報を探すということを殆どすることがない」からです。つまり、「他の人が何月何日に何を記録したか」ではなく、「これこれこういうことについての話題はどこ?」が目的だからです。

ただ、それはあくまで自分の用途の範囲であって、やはりDL可にしておくからには他の人のアイディアや追加機能、改造・カスタマイズ・機能拡張、カスタムCSSによるテーマ等などが欲しいのも事実ですね。

Omni Graffle 3.0.1b3 - Tips

omni graffle

先日Pro版ライセンスを購入したOmni Graffleの3.0.1 beta3がリリース。

Pro版には色々と追加機能がありますが、その中でも面白いのがこの機能。(クリックで拡大表示)↓

safari download nibsafari find nib

なんと、アプリケーションのnibファイルをOmni Graffleのアイコンにドラッグ&ドロップするだけで、自動的にこのようなダイアグラムが書き出されます。(ちなみに上の画像はSafariのnibファイルを試したものです)

RilkeCMS - PHP Weblog System

「RilkeCMS」というPHP+MySQLでXHTML+Pure CSSなWeblogシステムが開発中のようです。

  • It is a visual (WYSIWYG) system that is intented to let beginners and pros alike publish weblogs with ease.
  • It has support for visitor contributed articles (which need to be approved before publication); INSERT INTO loggix_log (id, title, href, comment, date, mod, draft, ping_uri) VALUES multiple administrators, easy categorization, built in commenting, and privacy features (including anti-SPAMbot encryption of email addresses in comments).
  • It is PHP and MySQL based, and designed to run on Linux servers.

May 21, 2003

SIGN BUILDER 2.0

PHPを使った、標識を作れるWebアプリ。ちょっと試しに作ってみました。

Think Whatever

サイトのちょっとした注意書きのアイコンなどにいいかもしれません。

次へ