パーマリンク | 2008年12月10日 17:52
ロリポップ!
では来春くらいにもphp4の提供終了みたいな感じだったので
PHP5へ移行してみた。
ユーザ専用ページから切り替えをおこなう。 切り替え自体はとても簡単ですが一度PHP5へ移行すると PHP4へ戻れないので切り替えは慎重に。
デフォルトPEARが使えなかったのでローカルにインストールして .htaccessでinclude_pathの設定をローカルPEARにしてましたが PHP5にすると.htaccessでPHPの設定を行えない模様。 スクリプトに
ini_set("include_path", "ローカルPEARへのパス");
を追加。
.htmlもphpとして動くように
AddType application/x-httpd-php .html .php
としてましたが、動きませんでした。 というか上記設定だと.htmlはPHP4として、.phpはPHP5として動くようです。
なんか
AddType application/x-httpd-php5 .html .php
こんな感じにしたら.htmlもPHP5で動くんじゃね? とか思って試しましたが残念ながらダメでした。
自分の知識じゃどうにもならんので.htmlから.phpに拡張子変更しました。 ユーザ管理画面からphp.iniのsafe_modeをOFFとして 下記スクリプトで行いましたが、rmは利用できないのか削除は出来ません。 (mvも利用できなかったのでcpでやった。)
$dir = dirname(__FILE__);
exchange($dir);
function exchange($dir)
{
if ($handle = @opendir($dir)) {
while (false !== ($file = readdir($handle))) {
switch($file) {
case ".":
case "..":
break;
default:
if( is_dir($dir . DIRECTORY_SEPARATOR . $file) ) {
exchange($dir . DIRECTORY_SEPARATOR . $file);
} else {
if (preg_match("/\.html$/", $file)) {
$f = $dir . DIRECTORY_SEPARATOR . $file;
$fname = $dir . DIRECTORY_SEPARATOR . preg_replace("/\.html$/", "", $file);
$pname = $fname . ".php";
$mv = "cp $f $pname";
$rm = "rm $f";
shell_exec($mv);
shell_exec($rm);
}
}
}
}
}
}
でもって*.htmlへのアクセスは*.phpへリダイレクトするように .htaccessに下記のように設定。
RedirectMatch permanent (.+)\.html$ http://www.kantenna.com$1.php
EUC-JPからUTF-8へ文字コード変更したので MTのほうも変更しました。verは3.33-jaです。
mt-config.cgiを
PublishCharset utf-8
と変更。当然文字化け発生。。。
データベースの変更するのかと思いましたが mt-config.cgiで MYSQL、POSTGRESQL、SQLITE、BERKELEYDBどれも設定されて無いんで どのDB使ってるのか、なんで動いてるのか不明。
sqliteディレクトリも無いしmysql上にテーブルも無い。・・・何を使ってるんだ?
エントリーの書き出しは出来るみたいなので 「ユーティリティ > 読み込み/書き出し > エントリーの書き出し」 でエントリーを書き出し。
エントリーの削除。
書き出したファイルをUTF-8にしてimport/にアップ エントリーの読み込み
で文字化けは解消しましたがタグが消えてることに気がつきました。。。 エントリー削除しないで読み込めばよかったのかもしれません。
多少の犠牲がでましたがなんとか移行できました。