バリュードメインのCORESERVERは、昔から少しばかり通好みではあるが、低価格で多くのことが試せる共有サーバとして知られている。今ではGMO傘下になり、サイトもリニューアルされて、旧来のマニアックなユーザから、Wordpressブログのみのエントリーユーザまで、多くの利用者があるようだ。
そのCORESERVERで現在、大規模なサーバ移行(マイグレーション)が随時行われている。ハード面・ソフト面ともに、諸々が最新システムに移行されており、それはそれでいいことなのだが、移行による弊害が伴うことも事実。
今回の大規模マイグレーションで、私が運用するサイトでも、幾つかが500 Internal Server Errorによるアクセス不全になった。折しも仕事で納期が迫る直前のタイミングで、面倒なことになった。トラブルシューティングに割く時間のゆとりも多くなく、サーバ運営の問い合わせ窓口に問うてもなかなか返事がなく、返ってきても解決には至らない内容で…。もうこれは任せていても仕方ない、ってことで調査した。
端的に、
- 今回、私のシステムで生じた幾つかの500エラーは、ほとんどがデータベースアクセス不全によるものであった
- データベースといえば、今回のサーバ移行で、MySQLが5.1から5.7へバージョンアップされている
- 同時に、旧MySQL5.1についても、2018年3月末頃までは提供される、とのこと
- 旧MySQLへの接続は、接続ポートを [3306] から[33051]へ変更すればいい
つまり、解決方法は2つ。
[A] 新MySQL5.7へ接続するように書式を見直す
[B] 移行前まで正常稼働していた旧MySQL5.1へ差し向ける
[A]の方法は、時間を掛けてDB接続関連のファイルを調べ尽くすほかない。[B] は、暫定措置期間の2018年3月末頃までとはなるが、今そこにある危機に対しては即対応できる。
ということで、とりあえず [B] にて対応する方法。
設定ファイルのDBサーバを “localhost” から “127.0.0.1:33051” に変更して、正常稼働していた旧MySQL5.1へ差し向ける。
…だけでいい。これで正常にサイトが表示されるようになる。
が、ここで問題が。
CORESERVERにて標準実装されているphpMyAdminでは、この旧MySQL5.1(127.0.0.1:33051)のDB内容を見ることができない。
config.inc.phpを修正する必要があるのだが、移行後はphpMyAdminも4.6にバージョンアップしているので、このままだとエラーになる。旧MySQL5.1には、phpMyAdmin4.0バージョンが必要だ。別途インストールせねばならない。
ということで、以下ターミナルアクセスにて、
$ cd public_html/log/ $ wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.tar.gz (...略...)
① public_html/log/にて、phpMyAdmin4.0.10.20をダウンロード。
$ tar pzxvf phpMyAdmin-4.0.10.20-all-languages.tar.gz (...略...)
② phpMyAdmin4.0.10.20を解凍
$ mv phpMyAdmin-4.0.10.20-all-languages phpmyadmin40
③ 解凍したphpMyAdmin4.0.10.20をリネーム。
(※ ここでは “phpmyadmin40” にリネームした。ちなみに、CORESERVER標準実装のphpMyAdmin4.6のファイル名は “phpmyadmin” なので、それ以外のものに。)
$ cp phpmyadmin/config.inc.php phpmyadmin40/
④ blowfish_secretをそのまま持ってきたいので、標準実装のphpMyAdmin4.6から、今回インストールしたphpMyAdmin4.0へ、”config.inc.php” をコピー。
$ vi phpmyadmin40/config.inc.php
⑤ phpMyAdmin4.0を旧MySQL5.1へ向けるため、コピーしてきた”config.inc.php” をviエディタで修正。
⑥ 30行目辺りの “/* Server parameters */” 情報を書き換える。
以下をコピー&ペースト。
/* Server parameters */ $cfg['Servers'][$i]['host'] = '127.0.0.1'; $cfg['Servers'][$i]['port'] = '33051'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
これで、
http://{アカウントID}.{サーバ#}.coreserver.jp/log/phpmyadmin40/
にて、旧MySQL5.1のデータベース向きのphpMyAdminへアクセスできるようになった。
なお新MySQL5.7へは、標準実装されているphpMyAdminは通常通り、
http://{アカウントID}.{サーバ#}.coreserver.jp/log/phpmyadmin/
にてアクセスできる。
以上。
Comment