KANTENNA.COM

Solarized

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として動くように

PHP
  1.  <?php
  2.  AddType application/x-httpd-php .html .php
  3.  ?>

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

なんか

PHP
  1.  <?php
  2.  AddType application/x-httpd-php5 .html .php
  3.  ?>

こんな感じにしたら.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に下記のように設定。

PHP
  1.  <?php
  2.  RedirectMatch permanent (.+)\.html$ http://www.kantenna.com$1.php
  3.  ?>

MTの文字コード変更

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

mt-config.cgiを

PHP
  1.  <?php
  2.  PublishCharset utf-8
  3.  ?>

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

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

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

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

エントリーの削除。

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

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

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

トラックバック(3)

2009年1月19日 11:10

ファーストサーバがやばい。情報備忘録

VPS(仮想専用サーバ)サービスがついに月額1000円を切ってきた。ファーストサーバの格安VPSホスティングサービス続きを読む

2009年5月18日 17:15

ロリポでPEARのインストール情報備忘録

ロリポでPEARのインストールする手順メモ続きを読む

2011年3月 5日 06:02

[PHP]どうやらPHP5.3の時代が来たようだ。情報備忘録

ロリポップ!でPHP5.3に切り替えられるようになった。続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。