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 namespacedyld: 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 namespacedyld: 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 namespacedyld: 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が動かない、というのはなぜだろう?
ということで後でソースを見てみることにします。
今日は取り急ぎここまでということで。