MacのOSアップデート後にphpで不具合が起こる場合の対処法
2016年01月27日
MacのOSアップデートを行うと、自身のMac上に構築していたサーバ環境が動かなくなる場合がありましたので、対処法のメモです。
まず、私のケースでいうと、不具合が起きたのが、PHP+MySQLのサイトです。
(EC-CUBEサイトを構築)
アップデート前は動いていたのが、アップデート後には画面が真っ白になるなどのエラーが起きるようになってしまいました。
私の場合、EC-CUBEでのエラーだったので、EC-CUBEのログファイルを確認
/data/logs/error.log
確認すると、以下のようなエラーが起きていました。
Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [SET SESSION storage_engine = InnoDB]
PlaceHolder: [array (
)]
MDB2 Error: connect failed
_doConnect: [Error message: No such file or directory]
[Native code: 2002]
[Native message: No such file or directory]
要は、DB接続に関するエラーです。
ここで、ネットでいろいろと調べてみたのですが、トラブルシューティングのポイントとしては、
MACは、OSアップデート時に各種設定ファイルを初期化するが、バックアップはとっている
ということです。
具体的には、今回のケースでいえば
Apacheの設定ファイルである「httpd.conf」「php.php」を、アップデート前のファイルと比較します。
ターミナルから、以下の方法で差分を確認できます。
httpd.confの場合
diff /etc/apache2/httpd.conf /etc/apache2/httpd.conf.pre-update
差分の部分を、httpd.confに追加してやります。
php.iniの場合
php.iniは、まず、アップデートするとそもそもphp.iniがなくなっているので、作成から入ります。
cp /etc/php.ini.default /etc/php.ini
これでphp.iniが作成されるので、あとは差分を比較します。
diff /etc/php.ini /etc/php.ini-◯.◯-previous
差分をphp.iniに適用してやります。
これで設定が同じになるので、アップデート前動いていたのであれば動くようになるはずです。
適用した後、
sudo apachectl restart
でapacheを再起動するとOKです。