libnetsnmp.dylibを読み直す


OS X の更新後、再び開発環境のサイトディレクトリのブラウザ表示ができなくなったため、前回と同じく .local ドメインの問題を疑ってみたところ「そんなコマンドは無え!」と怒られたので、そう言えば DNS 周りのライブラリが Mavericks 環境に戻る話をすっかり忘れて寄り道をしました。(以下参考リンクの手前2つくらい)

ここで夏休み中の子供から宿題の質問を差し込まれつつ、apachectl configtest と Apache の設定ファイルを確認すると次のようなエラーを返してきました。
httpd: Syntax error on line 169 of /private/etc/apache2/httpd.conf: Cannot load libexec/apache2/libphp5.so into server: dlopen(/usr/libexec/apache2/libphp5.so, 10): Library not loaded: /usr/lib/libnetsnmp.25.dylib
Referenced from: /usr/libexec/apache2/libphp5.so
Reason: image not found

再ビルドが必要になるらしい Homebrew を使っていないこともありもう少し探ってみると、httpd.conf の169行目をコメントアウトすると PHP は起動しないものの表示には問題がなかったので、後半にある libnetsnmp.25.dylib の実体を確認してみると…

-rwxr-xr-x 1 root wheel 1241136 7 9 16:38 libnetsnmp.30.dylib
lrwxr-xr-x 1 root wheel 19 7 16 18:45 libnetsnmp.dylib -> libnetsnmp.30.dylib

このように本体も 30 になっているので、sudo ln -s /usr/lib/libnetsnmp.30.dylib /usr/lib/libnetsnmp.25.dylib として PHP が読もうとしている 25 のシンボリックリンクを作成後、Apache を再起動すると解決しました。

P.S. バージョン違いのグダグダで Perl のようなことにならないことを祈りたいのに次のプレリリース更新がやってきた笑

参照: