/var/log

技術系のあれこれ。※内容は個人の発言であり、所属する組織を代表するものではありません。

apache2のライブラリ設定

ローカル環境でcgiテストできる環境を構築していたら問題が発生したのでちょっとメモ

pythonからMySQLを呼び出してちょこっと集計するcgiを作っていたんですが
エラーがでましたorz




実際にapache2のログ(/var/log/apache2/error_log)を見てみると

 Traceback (most recent call last):
   File "/Users/nullhacker/Sites/cgi-bin/analysis.py", line 8, in <module>
   import MySQLdb
   File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
     import _mysql
 ImportError: dlopen(/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
   Referenced from: /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/_mysql.so
   Reason: image not found
 Premature end of script headers: analysis.py

となっているのでapache2さんはどうやらdylibの場所が分からなくて困ってるんだなと思いまして
/etc/apache2/httpd.conf に下記の通り設定を追加しました.

SetEnv DYLD_LIBRARY_PATH /usr/local/mysql/lib/


これですっきり解決...すっきりか?