PhpTiddlyWiki をサーバにインストールして,動作するように PHP の設定を変更すると,こんどはブログのサイトが真っ白になってしまった。xml 宣言が PHP のタグとして解釈されたからだった。
GTD 用の Wiki である GTDTiddlyWiki は便利だが,ファイルはローカルのマシンに保存される。これだと,GTD 管理マシンを1台に限定するか,終了時に Wiki 本体をサーバにアップロードし開始時にダウンロードするか,どちらかの方法をとる必要がある。そうなると,データはサーバに保存したい。PhpGTDTiddlyWiki を使ってみたいが,残念ながらダウンロードファイルが見つからない。とは言っても,
PhpGTDTiddlyWiki = TiddlyWiki + PhpTiddlyWiki + GTDTiddlyWiki
とあるので,まずはサーバサイドで動作する PhpTiddlyWiki をインストールして動作確認をするのが先決。オフライン版本家のサイト TiddlyWiki も PhpTiddlyWiki を使っている。
環境は,Vine Linux 3.2, Apache 1.3.33, PHP 5.1.2 である。インストール手順は以下の通り。
ここで問題発生。tiddly_install.php にブラウザでアクセスすると,ブラウザに PHP のスクリプトが表示されてしまう。PhpTiddlyWiki の PHP スクリプトは短縮型の開始タグを使っているからである。PHP の開始タグについては,PHP: 基本的な構文 - Manual に解説がある。対策は次の二者択一。
PhpTiddlyWiki のコードの修正方針は,「<? ... ?>」は「<?php ... ?>」に,「<?= ... ?>」は「「<?php echo ... ?>」にすることである。しかし量が多すぎ。
そこで,PHP の設定を変更し,「<? ... ?>」を PHP のスクリプトとして解釈できるようにすることにした。/etc/php.ini を編集し,short_open_tag ディレクティブの設定値を変更する。
そして,httpd をリスタートすると PhpTiddlyWiki が動作するようになった。やれやれ。
ここで問題発生。あれれ? ブログのサイトにアクセスすると,何も表示されない。ブラウザではエラーになっていない。内容がないのである。「内容がないよう」なんて言っている場合ではない。トップページだけではなく,全てのページが真っ白に表示されるようになってしまったのだ。原因は,各ページの最初の xml 宣言であった。
PHP で短縮型の開始タグの使用を許可したばかりに,<?xml ...?> が PHP のスクリプトだと解釈されたためである。しかも,xml などという関数はないので,PHP としてはエラーになる。サーバは正直なので,ページにはめでたく何も表示しなくなったのである。
ではどうするか? 短縮型開始タグを許可し,xml 宣言を
のように書いてしまうという方法が考えられる。しかし,これは本末転倒という気がする。やはり PhpTiddlyWiki のコードを書き直すべきだ。さらに,/etc/php.ini で 「register_globals = Off」の設定を「On」にしなければならず,これはセキュリティ的に問題が起きやすいとされている。PhpTiddlyWiki の利用は当分お預けだ。
Posted by n at 2006-06-07 00:09 | Edit | Comments (2) | Trackback(0)
Master Archive Index
Total Entry Count: 1957
PhpTiddlyWiki のコードを書き直すのは、記事を見る限りそれ程大変ではないように思います。
Posted by: kirin_3 at June 07, 2006 19:271. '<?' を '<?php' に全て置き換える
2. '<?php=' を '<?php echo ' に置き換える
なるほどそうですねぇ。気がつきませんでした。
Posted by: n at June 07, 2006 22:57