Configuration

使用會話 cookie 模組編譯 Apache 2.4.9

  • March 18, 2019

我使用以下配置編譯了我的 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"

該問題與我的編譯設置無關。伺服器沒有啟動,因為我的下面的語句被評論了httpd.conf

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

取消註釋上述解決了該問題。

取消註釋該行:

LoadModule session_module modules/mod_session.so

正在解決問題。@httpd-2.4.38

如果 mod_session.so 在 httpd.conf 中處於活動狀態,mod_session_cookie.so 和 mod_socache_shmcb.so 仍然可以載入

引用自:https://serverfault.com/questions/588733