Apache2.4如何加载一个完整的库
How to load a complete library in Apache2.4
我为 Apache2.4 创建了一个使用外部库 (MagickWand) 的自定义模块。我使用 sudo apt-get install libmagickwand-dev
安装它,但是现在,我必须做什么才能将它与 Apache2.4 一起使用?当我重新启动 apache2 服务时,我收到了关于 MagickWand 上函数的未定义符号错误。
我读到我应该加载库的共享对象,但我该如何创建它?使用apxs?在哪里?
非常感谢您!
apache2 中有两个配置文件需要修改:
(对于 linux)
在 /etc/apache2 中有感兴趣的子目录:
./mods-available 和 ./mods-enabled 和 ./conf-available 和 ./conf-enabled
./mods-available 目录包含所有可加载模块,所有模块的文件名都带有 .load 扩展名
./mods-enabled 目录包含指向 ./mods-available 目录中要加载的可加载模块的链接,以及指向每个 .conf 文件(对于单个可加载模块)的 .conf 文件的链接实际要加载的模块)。
./conf-available 目录包含可加载模块的所有 .conf 文件
./conf-enabled 目录包含指向 ./conf-available 目录中实际使用的可加载模块配置文件的链接
然后在 /etc/apache2 目录中的文件 apache2.conf 可以包含(除其他外)这两个语句:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
这就是指导 apache2 实际加载模块及其相关配置文件的原因
以下回复是为了帮助别人:
为了使用带有 MagickWand 库的 apxs 编译自定义 apache 模块,首先在您的 C 文件中包含头文件 wand/magick-wand.h
。假设它是 mod_example.c:
因此,在 mod_example.c 中添加:
#include "wand/magick-wand.h"
现在,当使用 apxs
编译模块时,使用 -I 标志包含 MagickWand 在构建过程中需要的目录,并使用 -l 标志提及库名称
sudo apxs -c -i -I/usr/include/ImageMagick-6 -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -lMagickWand-6.Q16 /path/to/mod_example.c
请注意,您的库版本可能不同。
我为 Apache2.4 创建了一个使用外部库 (MagickWand) 的自定义模块。我使用 sudo apt-get install libmagickwand-dev
安装它,但是现在,我必须做什么才能将它与 Apache2.4 一起使用?当我重新启动 apache2 服务时,我收到了关于 MagickWand 上函数的未定义符号错误。
我读到我应该加载库的共享对象,但我该如何创建它?使用apxs?在哪里?
非常感谢您!
apache2 中有两个配置文件需要修改:
(对于 linux)
在 /etc/apache2 中有感兴趣的子目录:
./mods-available 和 ./mods-enabled 和 ./conf-available 和 ./conf-enabled
./mods-available 目录包含所有可加载模块,所有模块的文件名都带有 .load 扩展名
./mods-enabled 目录包含指向 ./mods-available 目录中要加载的可加载模块的链接,以及指向每个 .conf 文件(对于单个可加载模块)的 .conf 文件的链接实际要加载的模块)。
./conf-available 目录包含可加载模块的所有 .conf 文件
./conf-enabled 目录包含指向 ./conf-available 目录中实际使用的可加载模块配置文件的链接
然后在 /etc/apache2 目录中的文件 apache2.conf 可以包含(除其他外)这两个语句:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
这就是指导 apache2 实际加载模块及其相关配置文件的原因
以下回复是为了帮助别人:
为了使用带有 MagickWand 库的 apxs 编译自定义 apache 模块,首先在您的 C 文件中包含头文件 wand/magick-wand.h
。假设它是 mod_example.c:
因此,在 mod_example.c 中添加:
#include "wand/magick-wand.h"
现在,当使用 apxs
编译模块时,使用 -I 标志包含 MagickWand 在构建过程中需要的目录,并使用 -l 标志提及库名称
sudo apxs -c -i -I/usr/include/ImageMagick-6 -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -lMagickWand-6.Q16 /path/to/mod_example.c
请注意,您的库版本可能不同。