ロリポ PHP4->PHP5移行メモ

| 2008年12月10日 17:52

ロリポップ!では来春くらいにもphp4の提供終了みたいな感じだったので PHP5へ移行してみた。

PHPの切り替え

ユーザ専用ページから切り替えをおこなう。 切り替え自体はとても簡単ですが一度PHP5へ移行すると PHP4へ戻れないので切り替えは慎重に。

.htaccess

デフォルトPEARが使えなかったのでローカルにインストールして .htaccessでinclude_pathの設定をローカルPEARにしてましたが PHP5にすると.htaccessでPHPの設定を行えない模様。 スクリプトに


ini_set("include_path", "ローカルPEARへのパス");

を追加。

.htmlから.phpへ拡張子の変更

.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

MTの文字コード変更

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/にアップ エントリーの読み込み

で文字化けは解消しましたがタグが消えてることに気がつきました。。。 エントリー削除しないで読み込めばよかったのかもしれません。

多少の犠牲がでましたがなんとか移行できました。

kantenna.com 最新更新ページ

ロリポ PHP4->PHP5移行メモタグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/418
[情報備忘録]2009年01月19日 11:10
ファーストサーバがやばい。
VPS(仮想専用サーバ)サービスがついに月額1000円を切ってきた。ファーストサーバの格安VPSホスティングサービス
[情報備忘録]2009年05月18日 17:15
ロリポでPEARのインストール
ロリポでPEARのインストールする手順メモ
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?