joomla! をxammpにインストールしようとしたらフリーズ、その対処方法

joomla!をUSBメモリに展開したXAMPPにインストールしようとしたら、途中でフリーズしてしまいました。

最初はインストール処理に時間がかかってるのだなと思い、そのまま放置して外出。2時間ほどして戻ってきましたが、画面はそのままでした。インストール途中でフリーズしていることは間違いない・・・

joomla! のバージョンとXAMPPのバージョンの相性が悪いのかなと思って、XAMPPのバージョンを変えてやってみましたが、状況は同じでした。

PhpMyAdmin で、データベースの中身をみてみると、19個のデータベーステーブルが作成された時点で停まってることが判明。

php.iniを開いてエラー出力設定を調べる

原因がわかれば解決もはやくできると思い、php.ini をエディタで開いてエラー出力する・しないの設定はどうなっているのかと調べました。

display_errors = On

エラー出力をするという設定になっています。

フリーズしているのにエラーが出ていないのはなぜ?と調べてみると、phpではプログラム側でエラー出力しないようにできるらしいです。

joomla! のインストールプログラムでも、エラー出力しないに設定されているのでしょう。

スクリプトの実行時間を制御する、max_execution_time

さらに調べていくと、php.iniのなかにphpスクリプトの実行時間を制御する、max_execution_time という設定項目があることが分かりました。

再度、php.ini をエディタで開いて、max_execution_time の項目を探すと、

max_execution_time = 30

となっていました。「phpスクリプトの最高実行時間は30秒です」という意味です。

インストールがこの設定値、30秒以内に終わらなかったために、停止していたんですね。

この設定時間を変えて試してみました。

php.ini を書き換えて上書き保存したら、必ずXAMPPを再起動してください。そうしないと、書き換えた内容が反映されません。

max_execution_time = 30

   ↓

max_execution_time = 180

43個のテーブル作成でストップ

max_execution_time = 300

58個のテーブル作成でストップ

max_execution_time = 480

66個のテーブル作成でストップ

max_execution_time = 600

68個のテーブル作成でインストール成功

私の環境では、600秒(10分)に設定してようやくインストールできました。

もしもエラー出力されたなら、

Fatal error: Maximum execution time of 30 seconds exceeded

(致命的なエラー:最高実行時間である30秒を超過しました)

というエラーが表示されていたでしょう。

インストール時にフリーズしてしまうようなことがあったら、php.iniのmax_execution_time の値を書き換えて実行してみてください。

USBメモリは、ハードディスクやSSDと比べると転送速度が劣るので、ファイル作成、読み込み・書き込みに時間がかかりこのようなことになったものと思います。

PC-Life

Posted by pman-bros