̃Gg[͂ĂȃubN}[Nɒlj

Mac :: Apache(PHP)のエラー「Symbol not found: _ldap_control_find」の対応方法



Mac の Apache(PHP)で以下のエラーが出て、Apache が起動しないときの対処方法です。

% sudo apachectl start 
httpd: Syntax error on line 174 of /usr/local/etc/apache2/2.4/httpd.conf: Cannot load /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so into 
server: dlopen(/usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so, 10): Symbol not found: _ldap_control_find\n  Referenced
from:/usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so\n  
Expected in: /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP\n in /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so

このエラーに遭遇するのは、brew upgrade などで Apache や PHP のバージョンが更新されたときだと思います。
基本的には「–with-httpd24 –without-ldap」オプションを付けて PHP をインストールし直せば回避できます。

% brew uninstall php56
% brew cleanup
% brew update
% brew install php56 --with-httpd24 --without-ldap
  • php56 = PHP5.6 系
  • –with-httpd24 = Apache2.4系

としていますが、環境により適宜読み替えてください。

  • –without-ldap としているので、ldap 関連が無効になりますが、ldap について問題ない方のみ適用してください。





pc/mac/apache_php_ldap_error.txt