MacでApache起動時にエラーが出た件の対処

mac

Macに入れたApaceを起動する際にエラーが出て、1日ほど無駄にしてしまいました。対処法を備忘を兼ねてご紹介します。

homebrewにてApacheを入れていて、phpenvにてPHPを入れている環境です。

ある日、何かの都合でbrew upgradeもしくはbrew updateをしました。どちらか忘れてしまったのですが、全ライブラリを更新するような処理が走ったので、ちょっと怖くなって途中でキャンセルしました。

その後Apacheを起動しようとすると、以下のようなエラーが発生して起動できませんでした。

1
2
$ sudo apachectl start
httpd: Syntax error on line 173 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/lib/httpd/modules/libphp5.so into server: dlopen(/usr/local/lib/httpd/modules/libphp5.so, 10): Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.60.dylib\n  Referenced from: /usr/local/lib/httpd/modules/libphp5.so\n  Reason: image not found

以下はApacheではなくNodeについての記事なのですが、この記事を参考に

npmのエラー解決「dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.60.dylib」

1
$ brew upgrade httpd

をして、もう一度Apacheを起動すると、次のようにエラーが減りました。ただ、Apacheのバージョンは上がってしまいます。

1
2
$ sudo apachectl start
httpd: Syntax error on line 173 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/lib/httpd/modules/libphp5.so into server: dlopen(/usr/local/lib/httpd/modules/libphp5.so, 10): image not found

さらに、次の記事を参考に

phpenvのコマンドとphpenv-apache-versionの切り替えコマンド

phpenvの導入して複数バージョンのPHPを管理する

apxsのパスを確認します。

1
2
$ which apxs
/usr/local/bin/apxs

default_configure_optionsを編集し、PHPのビルド時のオプションを修正します。

1
$ vim .phpenv/plugins/php-build/share/php-build/default_configure_options

以下を追記します。パスは先ほど確認したものにします。

1
--with-apxs2=/usr/local/bin/apxs

そして対象のバージョンのPHPを削除し、

1
$ phpenv uninstall 5.5.31

再インストールします。

1
$ phpenv install 5.5.31

これでエラーが出ずに起動できるようになりました。

1
$ sudo apachectl start