かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

PHP56 Macを再起動したらlibphp5.soが消えてapacheが起動できなくなった。

Macを再起動して普段通りapacheを起動しようとしたら次の様なエラーが表示されるようになってしまいました。先方の環境に合わせてPHP56です

$ sudo apachectl start
httpd: Syntax error on line 170 of /usr/local/etc/apache2/2.4/httpd.conf: Cannot load /usr/local/opt/php56/libexec/apache2/libphp5.so into server: dlopen(/usr/local/opt/php56/libexec/apache2/libphp5.so, 10): image not found

HomebrewでインストールしてあるPHP56のディレクトリ(/usr/local/opt/php56/)を見に行くと、libexec ディレクトリが無くlibphp5.soが存在していませんでした。※ Macシャットダウン・再起動で消えたのか定かではありません。Macの再起動前までは問題なくApacheは起動していたのですが…

PHP56を再インストールしたら解決

HomebrewでPHP56を一度アンインスールし、--without-ldap--with-httpd24 オプションを付けてPHP56を再インストールしたらlibphp5.soが作られ問題が解決しました。

$ brew uninstall php56
$ brew install php56 --without-ldap --with-httpd24

参考にしたGitHubのissueには--without-ldap だけでOKのような感じだったのですが、今回の場合、--with-httpd24オプションを指定しないとlibphp5.soが生成されることはありませんでした。
しかし、なぜ突然この問題が発生したのかが謎です…

追記
PHP56を再インストールしたらlocal環境のWordPressでデータベース接続エラーになってしまいました。どうやらlocalhostのDBに接続できなくなっていたようなのでで、php.inimysql.sock関連を指定してあげる必要があるようです。
php.iniは/usr/local/etc/php/5.6にあります。

mysql.default_socket =mysql.sock のパスが記されているので、下記の箇所もこのパスを指定します。

  • mysqli.default_socket =
  • pdo_mysql.default_socket =

参考: [php]mysqliでNo such file or directoryが出る - Qiita


[参考]

↑ 今ならコレ解決できたかもしれない…