【前提】PHP4(4.3.0以上)をローカルで動かす設定は完了していること。
【環境】Windows2000 + An HTTPd + PHP4.3.1
【操作】
1)php.ini(C:\WINNTかC:\WINNT\system32あたりにあるはず)をエディタで開き、「Dynamic Extensions」と書かれたあたりを探す。
以下の行のコメントを外す(先頭の「;」を削除)。
;extension=php_domxml.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_xslt.dll
php.iniを上書き保存。
2)CMS Designer本体をダウンロードしてきて、ドキュメントルート下の適当なフォルダに解凍。
3)2で解凍したディレクトリ/cmsdesigner/include/xmlutil.php.incをエディタで開く。
4)87行目の
$result = xslt_process( $xslt, 'arg:/_xml', $xslFilePath, NULL, array( '/_xml' => $strXml ) );
を、
$result = xslt_process( $xslt, 'arg:/_xml', "file://$xslFilePath", NULL, array( '/_xml' => $strXml ) );
と書き換える。
※xsltパーサにローカルからアクセスする際にはファイルへのパスに「file://」をつけないと動かない……らしい。
5)ブラウザからtestcms.phpにアクセス。あとはマニュアルどおりに。
※このまま本番サーバにアップすると動かなくなるはずなので、アップ前に87行目を戻しておくこと。
私は下のように判別を作ってみた。これで動くような気がしなくもない。
if ($_SERVER["REMOTE_ADDR"] == '127.0.0.1') {
$result = xslt_process( $xslt, 'arg:/_xml', "file://$xslFilePath", NULL, array( '/_xml' => $strXml ) );
} else {
$result = xslt_process( $xslt, 'arg:/_xml', $xslFilePath, NULL, array( '/_xml' => $strXml ) );
}




