我使用以下configuration编译了我的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:
/etc/apache2/httpd.conf第136行的语法错误:无法将modules/mod_session_cookie.so加载到服务器:/usr/local/apache2/modules/mod_session_cookie.so:undefined symbol: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
取消上述解决了这个问题。