10年以上前に人に頼まれて導入した、BlognPlus(ぶろぐんぷらす)というブログ用のCMS。
ついにPHPアップデートに対応できなくなりサイトが表示できなくなりました。
その後、四苦八苦してなんとかBlognPlusからデータをエクスポートし、2021年現在のCMS主流派であるWordpressにデータを移行しました。
需要があるかわかりませんが、その時の状況や手順を残しておきます。
目次
BlognPlusからWordpressにデータを移行した記録
BlognPlusがついに最新版PHPに対応できなくなった
事の発端は知人からのヘルプ依頼
10年以上前にBlognPlusというブログ用のCMSを人に頼まれて導入しました。
ずいぶんと昔の話なので、導入した事すら忘れていたのですが、突然、依頼者から「急にブログが見れなくなった!」問い合わせが...。
レンタルサーバ提供事業者により、PHPのアップデートが行われたそうで、おそらくそのせいでエラーが発生するようになった模様です。
ただ、BlognPlus自体2012年に開発が終わっており、サポートは見込めません。
そうは言っても、いろいろお世話になっている人なので「残念でした!あきらめてください」とも言えません。
困った...。
まずは状況を確認します。
まずは状況確認
サーバ内部エラーを示す、HTTP ERROR 500が表示された状態
「急にブログが見れなくなった!」と言われ確認してみると、「HTTP ERROR 500」のエラーメッセージが表示されていました。
このメッセージは、閲覧しているサーバもしくは、そこで動いているスクリプトに何らかの障害が発生している状態を示しています。
つまり原因は閲覧者側ではなくサービス提供側にあることを意味します。
スクリプト修正をあきらめWordpressにデータ移行する方針に変更
スクリプトを解析して修正する事も考えました。
しかし、10年近く前に開発終了しているスクリプトを付け焼刃で修正したところで、今後も似たような問題が発生することは目に見えています。
そこで、依頼者と状況を説明し、操作などの運用方法が変更なることを承諾していただいたうえで、今主流のWordpressにデータを移行する事にしました。
今回の移行作業の概要
移行手順の確認
今回の作業は以下の1から4の順に進めます。
- レンタルサーバ上で稼働していたBlognPlusのスクリプトをダウンロード
- パソコンの中にBlognPlusを動かすためのサーバ環境を再現
- BlognPlusデータをエクスポート
- 新しくWordpressを設置し、BlognPlusデータをインポート
移行作業で難しかった点はBlognPlusからのデータエクスポート
今回の作業で一番難しかった作業は、「そもそもBlognPlusが表示できないのにデータをどのようにしてエクスポートするか」でした。
BlognPlusはWordpressに対応した形式でデータをエクスポートする機能がありますが、BlognPlus自体が表示できずエクスポート機能が利用できません。
phpdevを利用して10年前の環境を再現する
そこで、まずはパソコン内にBlognPlusが稼働するサーバ環境を一時的に用意します
phpdevのダウンロード
Apache1.3系+php4系の環境を構築します。
BlognPlusのデータ保存は、データベースもしくはテキストに2パターンが選択できます。今回はテキスト版で作業しましたが、動いてしまえば挙動は同じなので、おそらくデータベースでも問題なく作業できると思います。
環境構築にはパッケージをワンクリックでインストールできるphpdevを利用します。
以下のページからダウンロードできます。
SourceForge:
https://sourceforge.net/projects/phpdev5/
phpdevをインストール
ダウンロードしたらファイルを実行し適当な場所にインストールします。
ダウンロードしたインストーラをダブルクリックすれば勝手にインストールしてくれます。
インストール作業は簡単なのですが、アンインストーラがなく削除が少し手間です。
Apache、mysqlサービスを手動停止したうえでフォルダを削除してください。
BlognPlusのスクリプトとデータをまとめてphpdev配下にコピー
インストールしたフォルダ内のwwwフォルダ内にBlognPlusのスクリプトをフォルダごとコピーします。
ここで利用するBlognPlusのスクリプトはレンタルサーバ等に配置してあるスクリプトをフォルダごと一式ダウンロードしたものを利用してください。
BlognPlusのスクリプトを修正する
このままの状態だと、 「PHP Fatal error: Call to undefined function~」というエラーが表示されページが表示されません。
調べたところマルチバイト系の関数を利用するために追加モジュールを配置するように促すエラーのようです。
Extention配置用フォルダにモジュールを配置しても一向に認識しなかったので、あきらめてスクリプト自体を書き換えることにしました。
変更手順は以下の通り(簡単ですので安心してください)
- BlognPlusフォルダを開きます
- Common.phpをエディタで開きます。
- 24行目、25行目の以下の部分の行頭に//を付加しコメントアウトします。
※変更箇所
//if (!@ini_set("mbstring.http_output", "pass")) mb_http_output('pass');
//if (!@ini_set("mbstring.internal_encoding", "UTF-8")) mb_internal_encoding('UTF-8');
WebサーバのApachを動かす
つぎに、PHPDEVインストールフォルダ→Apacheフォルダ内にある「Apache.exe」を実行します。
中身が黒い画面(いわゆるコマンドプロンプト画面)が表示され、Apache~runing... のメッセージが表示されたApache起動完了です。
Apacheが起動したら、ブラウザで以下のURLをたたきBlognPlusの管理画面を開きます。
BlognPlusからデータを抽出する
BlognPlusにアクセスする。
Apacheが起動したら、ブラウザで以下のURLをたたきBlognPlusの管理画面を開きます。
BlognPlusの管理画面URL(以下のlocalhostとは自身の端末を意味します)
http://localhost/Blognplusのフォルダ名/admin.php
ログインすると以下の画面が表示されますので、管理者アカウントでログインします。
パスワードを忘れてしまった場合
ちなみに管理者アカウントを忘れた場合、以下の方法で救済が可能です。
パスワードの再設定方法
blognフォルダ内の「dat」フォルダにある、「userlist.cgi」をエディタで開きます。
1,1,userid,81dc9bdb52d04dc20036dbd8313ed055,username,2,,1,1,,1,,,,,0,60,,,0,0,,,,
上記の例では、useridの部分がユーザIDで、
81dc9bdb52d04dc20036dbd8313ed055が暗号化されたパスワードです。
設定されているパスワードの部分を上記赤文字に書き換えると、
パスワードは「1234」になります。
BlognPlusからデータをエクスポートする
あらためてBlognPlusに管理者でログインし、以下の手順でデータファイルを抽出します。
- データ管理>データエクスポート>UTF-8の順に選択
- ファイルでダウンロードにチェック
- エクスポートボタンを押し、ファイルを出力
エクスポート作業が終わったら、必ずApacheのコマンドプロンプト画面(黒い画面)は消しましょう。
消さないとApachが残ったままの状態になってしまいます。
WordPressにデータをインポートする
ついに最後の手順です。BlognPlusからエクスポートしたデータをWordpressにインポートします。
すでにWordpressはインストールされていることが前提です。
WordPressへのデータインポート
WordPressへのデータインポート手順は以下の通りです。
- WordPressの管理画面にログインして、ツール→インポートをクリック。
- 「Movable Type と TypePad」の「今すぐインストール」をクリック
- 「インポーターの実行」をクリック
- BlognPlusのデータを指定してインポートを実行
これで作業は終了です。
BlognPlusからデータをエクスポートする作業の大変さに比べるとWordpressへのインポートあっという間です。
この記事、需要があるかどうかわかりませんが、同じようなトラブルでつまづく人の助けになると幸いです。