質問: db接続を行うapacheモジュールをapacheに追加して、apacheを再起動するとエラー 皆さんこんにちは。 apacheモジュールを作りを行っていました。 モジュール内で、 mysqlにコネクションをはり、 queryリクエストの往来を行うだけの単純なものです。 モジュールの作成から次の順序で作業を進めました。 ----------------------------- (1)モジュールの作成 (2)モジュール(1)のmakeを行う -> make成功 (3)モジュールのsoファイルを配置。 /usr/local/apache2/modules/ に make時に作成された モジュールの「soファイル」を配置。 (4)httpd.confの編集 httpd.confに 作成したモジュールのディレクティブを挿入。 loadmodule db_connect_module modules/db_connect.so sethandler db_connect (5)apacheのリスタート ----------------------------- (5)でapacheの再起動を行うと、 次のエラーが表示されました。 httpd: syntax error on line 96 of /usr/local/apache2/conf/httpd.conf: cannot load /usr/local/apache2/modules/mod_db_connect.so into server: /usr/local/apache2/modules/mod_db_connect.so: undefined symbol: mysql_query ここで不思議だったのは、 確かに、 作成したmysqlに接続するためのapacheモジュール内で、 「mysql_query」を利用していますが、 そのモジュールのmake時には エラーが表示されていなかったし、 make時にエラーが出なかったとおり、 モジュール内のソースでも、 記述した「mysql.h」も正常にインクルードされていると思います。 どうして、 apacheのhttpd.confは 「mysql_query」に関する 上記のエラーを出してくるのでしょうか? どなたか考えられる原因を アドバイスいただけるとありがたい次第です。 以上どうぞ宜しくお願い致します。
回答: mysql_queryをダイナミックリンクしてませんか? 明示的にmysqlを静的リンクするか、dlopenするとか。