MacPorts+Codeigniterで突然表示ができなくなった場合

2011 年 4 月 3 日

MacOSX+Codeigniterで突然表示ができなくなった場合、と言ってもおそらくいろいろあるとは思うのですが、メモとして。

まず何をしていたかというと、OAuthのテストをしようしていて、
curl・php-curlがうまく動かないという現象がありまして、
どうやらcurl-ca-bundleがおかしいとエラーがでていました。
port clean curl-ca-bundle すれば良いという情報もあったのですがこれでは復旧せず、
結局 port selfupdate をかけて正常に port install curl が入りました。

ところがこの後、CodeIgniterが全然動かない
という奇妙な現象に陥りました。

Apacheのerror_logを見てみたところ次のようなありさま。

dyld: lazy symbol binding failed: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

dyld: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

[Sun Apr 03 02:17:00 2011] [notice] child pid 214 exit signal Trace/BPT trap (5)
dyld: lazy symbol binding failed: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

dyld: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

[Sun Apr 03 02:20:05 2011] [notice] child pid 335 exit signal Trace/BPT trap (5)
dyld: lazy symbol binding failed: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

dyld: Symbol not found: __mysqlnd_end_psession
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mysql.so
Expected in: flat namespace

さてこれでMacPortsのMySQL関連がどこかおかしくなったことはなんとなくわかりますが、ググってみても情報が出てこないのです。

こんな時には基本に立ち返るというわけで、

port upgrade mysql5-server

upgrade対象無し。

port uninstall mysql5-server

php5-mysqlがエラーを吐いている様子。

port uninstall php5-mysql

uninstallできないとなると…

port deactivate php5-mysql

deactivateは出来たようですね。

port install php5-mysql

なにもエラーなく終了しました。

/opt/local/apache2/bin/apachectl restart

なにごともなく表示復旧しました…。

phpMyAdminが動いてCodeIgniterが動かない、というのはなぜだろう?
ということで後でソースを見てみることにします。
今日は取り急ぎここまでということで。

コメントをどうぞ