使用 C 语言构建 Apache 模块

使用 C 语言构建 Apache 模块

我在构建 Apache c 模块时遇到问题。为了编译模块,我使用以下语句:

sudo apxs2 -I/usr/include/mysql -i -a -c mod_aledav.c

并且模块似乎已正确编译,但是当我尝试重新启动 Apache 时,输出为:

apache2: Syntax error on line 239 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/aledav.load: Cannot load /usr/lib/apache2/modules/mod_aledav.so into server: /usr/lib/apache2/modules/mod_aledav.so: undefined symbol: mysql_errno
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!

你能帮助我吗?

答案1

好的,问题解决了。我在语句行中添加了一个命令:

$(mysql_config --libs)

所以新的表述是

apxs2 -I/usr/include/mysql -i -a -c $(mysql_config --libs) mod_aledav.c

重新启动apache2服务后,模块就被加载了。

来自 mysql 站点

因此一个新的说法是

sudo apxs2 -I/usr/include/mysql -i -a -c -lmysqlclient -lz  mod_aledav.c

相关内容