apache 2.4.6,模块apr挂钩错误

时间:2013-07-23 00:10:04

标签: apache module apr

我正在尝试编译apache 2.4.6。我已经成功编译并安装了最新的apr(1.4.x)和apr-util(1.5.x)。

以下是我的环境设置,编译设置以及每个包之后对LD_LIBRARY_PATH的修改:

ENVPREFIX=/auto/custom-libs/linux/centos/6.x/x86_64/pkgs/httpd-2.4.6/
INSTALLPREFIX=${ENVPREFIX}
export PATH=${INSTALLPREFIX}/bin:$PATH

# APR compilation settings
./configure --prefix=${INSTALLPREFIX} --enable-other-child --enable-allocator-uses-mmap --enable-threads 
make -j16
make install
export LD_LIBRARY_PATH=${INSTALLPREFIX}/lib:$LD_LIBRARY_PATH

# APR-util compilation settings
./configure --prefix=${INSTALLPREFIX} --with-apr=${ENVPREFIX}/bin/apr-1-config --with-mysql=/usr/bin/mysql --with-crypto --with-ldap-lib=${ENVPREFIX}/lib --with-ldap-include=${ENVPREFIX}/include --with-openssl=/usr/lib64/openssl
make -j16
make install
export LD_LIBRARY_PATH=${INSTALLPREFIX}/lib/apr-util-1/:$LD_LIBRARY_PATH

# Apache httpd compilation parameters
./configure --prefix=${INSTALLPREFIX}  --enable-mpms-shared='all' --enable-rewrite --enable-ssl --enable-proxy --enable-cache --enable-pie  --enable-mods-shared='all' --enable-ssl-staticlib-deps  --enable-session --enable-proxy-balancer  --enable-usertrack --with-apr=${ENVPREFIX}/bin --with-apr-util=${ENVPREFIX}/bin 
make -j16
make install
export LD_LIBRARY_PATH=${INSTALLPREFIX}/lib/modules/:$LD_LIBRARY_PATH

一切顺利,直到我开始一个香草网站。我改变的是非标准8000的端口和用户名。不幸的是,我遇到以下错误,暗示某些版本与最新的apache 2.4.6代码附带的模块不兼容。

命令:

httpd -f `pwd`/httpd.conf

错误输出:

httpd: Syntax error on line 137 of /home/prigor/codebase/pediatrics/webservices/pedws/pedws/apache/httpd.conf: Cannot load modules/mod_session_cookie.so into server: /auto/igb-libs/linux/centos/6.x/x86_64/pkgs/httpd-2.4.6/modules/mod_session_cookie.so: undefined symbol: ap_hook_session_save

即使禁用此模块,其余模块仍会出现相同的错误。也许我正在使用apr和apr-util的错误版本?也许我在某个地方设置了错误的配置开关?

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

出于某种原因,2.4.6附带的某些模块与apr / apr-utils不兼容。只需要注释导致错误的模块。

答案 1 :(得分:1)

几分钟前我遇到了一个非常类似的问题。但经过一些测试,我意识到真正的问题是这一行(来自httpd.conf):

#LoadModule session_module modules/mod_session.so

在构建/安装后立即评论。取消注释该行(保持mod_session_cookie和其他人也取消注释)后,一切正常。

我也在使用HTTPD 2.4.6APR 1.4.8

答案 2 :(得分:0)

只需取消注释此行(来自httpd.conf):

#LoadModule session_module modules/mod_session.so