HOME>情報備忘録>ロリポ PHP4->PHP5移行メモ

ロリポ PHP4->PHP5移行メモ

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

PHPの切り替え

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

.htaccess

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

PHP

  1. <?php
  2. ini_set("include_path", "ローカルPEARへのパス");
  3. ?>

を追加。

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

.htmlもphpとして動くように

.htaccess

  1. AddType application/x-httpd-php .html .php
  2.  

としてましたが、動きませんでした。 というか上記設定だと.htmlはPHP4として、.phpはPHP5として動くようです。

なんか

.htaccess

  1. AddType application/x-httpd-php5 .html .php
  2.  

こんな感じにしたら.htmlもPHP5で動くんじゃね? とか思って試しましたが残念ながらダメでした。

自分の知識じゃどうにもならんので.htmlから.phpに拡張子変更しました。 ユーザ管理画面からphp.iniのsafe_modeをOFFとして 下記スクリプトで行いましたが、rmは利用できないのか削除は出来ません。 (mvも利用できなかったのでcpでやった。)

PHP

  1. <?php
  2. $dir = dirname(__FILE__);
  3. exchange($dir);
  4. function exchange($dir)
  5. {
  6.     if ($handle = @opendir($dir)) {
  7.         while (false !== ($file = readdir($handle))) {
  8.             switch($file) {
  9.                 case ".":
  10.                 case "..":
  11.                     break;
  12.                 default:
  13.                     if( is_dir($dir . DIRECTORY_SEPARATOR . $file) ) {
  14.                         exchange($dir . DIRECTORY_SEPARATOR . $file);
  15.                     } else {
  16.                         if (preg_match("/\.html$/", $file)) {
  17.                             $f = $dir . DIRECTORY_SEPARATOR . $file;
  18.                             $fname = $dir . DIRECTORY_SEPARATOR . preg_replace("/\.html$/", "", $file);
  19.                             $pname = $fname . ".php";
  20.  
  21.                             $mv = "cp $f $pname";
  22.                             $rm = "rm $f";
  23.  
  24.                             shell_exec($mv);
  25.                             shell_exec($rm);
  26.                         }
  27.  
  28.                     }
  29.             }
  30.         }
  31.     }
  32. }
  33. ?>

でもって*.htmlへのアクセスは*.phpへリダイレクトするように .htaccessに下記のように設定。

.htaccess

  1. RedirectMatch permanent (.+)\.html$ http://www.kantenna.com$1.php
  2.  

MTの文字コード変更

EUC-JPからUTF-8へ文字コード変更したので MTのほうも変更しました。verは3.33-jaです。

mt-config.cgiを

mt-config.cgi

  1. PublishCharset utf-8
  2.  

と変更。当然文字化け発生。。。

データベースの変更するのかと思いましたが mt-config.cgiで MYSQL、POSTGRESQL、SQLITE、BERKELEYDBどれも設定されて無いんで どのDB使ってるのか、なんで動いてるのか不明。

sqliteディレクトリも無いしmysql上にテーブルも無い。・・・何を使ってるんだ?

エントリーの書き出しは出来るみたいなので 「ユーティリティ > 読み込み/書き出し > エントリーの書き出し」 でエントリーを書き出し。

エントリーの削除。

書き出したファイルをUTF-8にしてimport/にアップ エントリーの読み込み

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

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

投稿日 2008年12月10日 17:52
カテゴリ 設定
タグ PHP | ホスティングサービス | メモ
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/980

コメント

コメントする
Name
Email Address
URL