NP_cles()

12345678910111213141516171819202122232425262728293031

QuercusでNucleusを動かす

 
投稿者:hsur 投稿日時:2007-05-03 - 15:34
カテゴリー:Programming - - トラックバック(0)- Views: 178

ちょっと前に見つけたJavaによるPHP実装であるQuercusですが、Quercusサイトにあるsoftware running on QuercusにNucleusがないのがちょっと許せなかったのでNucleus /w Quercusに挑戦してみることにしました。

まず、結論ですが「少し工夫する必要がありますが、動きます」。
GD関数についても一部がサポートされているのでNP_Captchaについても(改造が必要ですが)動作させることができます。

サイトはNucleus /w Resin + Quercusで公開しています。

簡単な構築手順

UTF-8に対応させるためにQuercusでUTF-8を使うにはを参考にWEB-INF/web.xmlの設定をします。Quercusは必ずsnapshot版を使うようにしてください。mysqlを使うためmysql.comからConnector/JをダウンロードしWEB-INF/libsに配置します。

現在までに判明しているおもな制限事項ですが、コアの部分についてはstrftime()でNullPointerExceptionが発生する部分や、Regexのコンパイルに失敗する部分があるのでその部分については書き換えが必要です。

libs/BLOG.php(198)

$tmp_header = strftime((isset($template['DATE_HEADER']) ? $template['DATE_HEADER'] : null), $timestamp);
$tmp_header = strftime((isset($template['DATE_HEADER']) ? $template['DATE_HEADER'] : " "), $timestamp);

libs/ADMIN.php(1522)

if (eregi('[a-zA-Z0-9|\.,;:!\?=\/\\]{90,90}',$body) != false)
if (eregi('[a-zA-Z0-9|\.,;:!\?=\/]{90,90}',$body) != false)

libs/COMMENTS.php(297)

if (eregi('[a-zA-Z0-9|\.,;:!\?=\/\\]{90,90}',$body) != false)
if (eregi('[a-zA-Z0-9|\.,;:!\?=\/]{90,90}',$body) != false)

こうしてみるとPHPが弱い動的型付けであり、如何にエラーに寛容(というか、ルーズ)な言語だということがしみじみとわかります。nullとか渡しても普通に動いちゃってますからね。

また、XMLパーサーがうまく動かないのでスキンのインポートができません。インストール後にスキンについては手動で入力を行う必要があります。

また、動作に支障はないものの管理画面の一部が文字化けしており、この部分については引き続き検証を行っています。

    このエントリは役に立ちましたか?

      

    トラックバックについて [policy]

    Trackback URL:
    Trackbacks
    このエントリにトラックバックはありません

    Comments [policy]

    No comments yet

    Add Comments

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン