phpMyAdminにて、アップデート時に固まる



今年に入ってから、ローカルでの開発環境の一つにて、Apache2.4&PHP7に移行しました。
兼ね良好な動作だったのですが、たまにApacheが落ちたり、phpMyAdminで固まることがありました。……が、開発が立て込んでいたので、その場しのぎで対処して問題を先送りしていました(汗)。

急ぎの開発が一段落し、問題に着手&解決できたので、その解決までを、備忘録を兼ねてメモしておきます。

事の発端:phpMyAdminにて、アップデートできない(固まる)

一番の大きな問題点としては、phpMyAdminにて、アップデートできない時があるということ。
具体的には、データを修正しようとすると、「読み込み中」表示のまま固まります。

読み取り中のまま、動かない……

読み取り中のまま、動かない……

その後は、うんともすんとも言いません。再読み込みすると、当然「読み込み中」は消えますが、アップデートは行われていない状態です。なんどやってもダメ。

ローカルのphpMyAdminで編集しエクスポート、本番環境にインポートする場合等も結構あるので、これでは困ってしまいます。

問題の切り分けをする

まずは、こういった時の定石として、何に問題があるのかを切り分けることが大切です。
問題点は、PHP(7)、Apache、phpMyAdminのどれなのか。

わかりやすい点として、Apacheのエラーログを見てみました。
エラーログの場所は、私の環境では以下にあります。

C:\Apache24\logs

「読み込み中」になった後に、以下のエラーログが追加されていました。

[Thu Sep 01 12:57:15.716631 2016] [mpm_winnt:notice] [pid 14312:tid 548] AH00428: Parent: child process 15012 exited with status 255 -- Restarting.
[Thu Sep 01 12:57:16.120654 2016] [mpm_winnt:notice] [pid 14312:tid 548] AH00455: Apache/2.4.18 (Win64) OpenSSL/1.0.2e PHP/7.0.3RC1 configured -- resuming normal operations
[Thu Sep 01 12:57:16.120654 2016] [mpm_winnt:notice] [pid 14312:tid 548] AH00456: Apache Lounge VC14 Server built: Dec  9 2015 11:13:29
[Thu Sep 01 12:57:16.120654 2016] [core:notice] [pid 14312:tid 548] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
[Thu Sep 01 12:57:16.121654 2016] [mpm_winnt:notice] [pid 14312:tid 548] AH00418: Parent: Created child process 1480
[Thu Sep 01 12:57:16.693687 2016] [mpm_winnt:notice] [pid 1480:tid 488] AH00354: Child: Starting 64 worker threads.

1行目を見ると、なんとApacheが再起動しているように読めます。
そこで、Windowsのイベントビューアーのログを見てみました。
event_viewer
晒していいのか分かりませんが(笑)、こんな感じで、アプリケーションでのエラーが発生しています。
ここで、障害が発生しているのがPHPで利用しているXdebugモジュールだと分かりました。

Xdebugは動いてはいましたが、PHPのバージョンと完璧には合わなかったのかもしれません。

Xdebugをアップグレードする

となると、Xdebugから新しいモジュールを落とせば解決しそうです。
しかし、Xdebugのオフィシャルサイトを久々に見てみましたが、どれを入れて良いのか分かりません。
TS付き、TS無しのものがあるけど、TSの意味って何だろなと。

そんな時に便利なのが、phpinfo()の出力をコピペすれば、最適なモジュールを教えてくれるサービス。
https://xdebug.org/wizard.php

これによると、私の場合は、「PHP 7.0 VC14 TS (64 bit) 」をダウンロードすれば良かったようです。

そして、php.iniから、
zend_extension=”C:\php70\ext\php_xdebug-2.4.1-7.0-vc14-x86_64.dll”
として、phpMyAdminから再チャレンジすると……無事解決しました!

結構不便だったので、これでやっと快適になりそうです。

コメントをどうぞ

CAPTCHA