映画とネットのDIARY(tDiary版)

since 2004/07/15
ここは古い日記です。2013年11月からadiaryを使った新サイトに移行しました。
検索エンジンからのアクセスで、お探しのキーワードが見あたらない場合はNamazuで再検索してみてください。
映画の感想一覧 2004年7月以降 2005年  2006年  2007年  2008年  2009年

2009年03月14日 [Sat]

データベース移行のテスト

ローカルで試してみた。さくらインターネットからエクスポートしたSQLファイルは6.8MB。ローカルのphpMyAdminでは設定で2048KBまでしかインポートできなかったのでphp.iniの以下の部分を16Mに書き換えた。

; Maximum allowed size for uploaded files.
upload_max_filesize = 16M

インポートする文字コードをeucjmsに変更。しかし、このままではインポートできなかった。文字コードの混在が影響しているのだろう。データベースを削除してインポートすれば、できるが、レンタルサーバー上でもこれができるのかどうか。とりあえず、その方法でインポートした上で、WordPressのwp-config.phpのデータベース名をさくらインターネットで使っているデータベース名に変更。WordPressにアクセスしてみたら、予想通り、激しく文字化けしている。

続いてCSV形式のファイルをインポートしてみた。そのままではエラー。データの区切りをセミコロンからコロンに変えてやってみると、インポートに時間がかかってエラーで終了する。ダメだ、こりゃ。

XOOPSの方はSQL形式でエクスポート、インポートで難なく終了した。やっぱり優秀だな。といってもローカルにXOOPSはインストールしていないのでちゃんと動くかどうかは分からない。

WordPressのプラグインWordPress Databese Backupでエクスポートしてみると、これ、テーブルが3つしかエクスポートされず、肝心の投稿は含まれていなかった。このプラグインが悪いというよりも文字コードが違うんだからしょうがない。wp-config.phpを削除した上で再インストールし、XMLのエクスポート、インポートで対応するか、テーブルを一つずつ処理していくしかないだろう。

ついでに書いておくと、バックアップのプラグインはwp-dbmanagerの方が優秀。ローカルで試してみたら、WordPressのデータすべてがエクスポートされた。サーバー上でWordPressのデータだけをエクスポートできれば、これが使えるんだけどな。

XOOPSをローカルにインストール

というわけでXOOPSを、というかホダ塾ディストリビューション(HD)をWindowsにインストールしてみる。久しぶりにインストーラーに触れたが、これは簡単だなあ。すいすい進んであっという間にインストールが終わる。さて、設定を変えようと思って管理者としてログインしようとすると、エラー。管理者メニューに入れないと、XOOPSは何もできない。エラーメッセージは「Maximum execution time of 30 seconds exceeded」と出る。

これはセッションの設定が悪いのかと思って、php.iniをいろいろいじったが、改善できない。エラーメッセージを見ると、どうもタイムアウトエラーのようなので、max_execution_time = 30とあったのを60にしてみたら、ようやくログインできた。ここまで3時間ほどかかった。やれやれ。php.iniの設定で主なものは以下の通り(PHPをc:\phpにインストールした場合)。これで、WordPressとHDが動いている。

output_buffering = Off
output_handler = mb_output_handler
max_execution_time = 60     
magic_quotes_gpc = On
magic_quotes_runtime = Off
default_charset = "UTF-8"
file_uploads = On
upload_tmp_dir = /temp
upload_max_filesize = 16M
include_path = ".;c:\php\includes"
extension_dir = "c:\php\ext"
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
session.use_cookies = 1
session.use_only_cookies = 0
session.auto_start = 0
session.cookie_lifetime = 0
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.detect_order = auto
mbstring.substitute_character = none;

問題はサーバーからエクスポートしたデータがローカルで使えるかどうかだが、これはなかなか難しい。普通に読み込むと、アクセスログの中にEUC以外の文字コードがあって、そこでインポートが止まってしまう。文字化けしている部分を3カ所ほど削除したら無事読み込めた。それでもサーバーとローカルとでインストールしているモジュールやデザインが違うのでそのままでは何も表示されない。たぶん、サーバーとまったく同じ構成にすれば、正常に表示されるのだろう。ということにしておく。なんだか、MySQLの移行が不安になってくるな。


[管理人にメールする] [シネマ1987online]