使用会话 cookie 模块编译 Apache 2.4.9

使用会话 cookie 模块编译 Apache 2.4.9

我使用以下配置编译了我的 Apache 版本:

./configure \ 
    --prefix=/usr/local/apache2 \ 
    --sysconfdir=/etc/apache2 \ 
    --enable-so \ 
    --enable-info \ 
    --enable-session \ 
    --enable-session-cookie \ 
    --enable-lua \ 
    --enable-luajit \ 
    --enable-proxy \ 
    --enable-mods-shared=all \ 
    --with-included-apr
make
sudo make install

完成上述过程后,当我尝试启动服务器时

/usr/local/apache2/bin/apachectl -k start

我收到以下错误:

httpd: 第 136 行语法错误/etc/apache2/httpd.conf:无法加载modules/mod_session_cookie.so到服务器: /usr/local/apache2/modules/mod_session_cookie.so未定义符号: ap_hook_session_save

在检查httpd.conf文件,我看到以下内容:

135 #LoadModule session_module modules/mod_session.so
136 LoadModule session_cookie_module modules/mod_session_cookie.so
137 LoadModule session_dbd_module modules/mod_session_dbd.so

其中数字表示文件中的行号。在取消注释行 #135并再次尝试显示:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

我觉得没问题。但是服务器还没有启动。


apachectl -V给出:

Server version: Apache/2.4.9 (Unix)
Server built:   Apr 13 2014 22:48:17
Server's Module Magic Number: 20120211:31
Server loaded:  APR 1.5.0, APR-UTIL 1.5.3
Compiled using: APR 1.5.0, APR-UTIL 1.5.3
Architecture:   32-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

答案1

问题与我的编译设置无关。服务器无法启动,因为我的 中注释了以下语句httpd.conf

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

取消上述注释即可解决该问题。

答案2

取消注释该行:

LoadModule session_module modules/mod_session.so

正在解决这个问题。@httpd-2.4.38

如果 mod_session.so 在 httpd.conf 中处于活动状态,则仍可加载 mod_session_cookie.so 和 mod_socache_shmcb.so

相关内容