Я скомпилировал свою сборку 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_cookie.so и mod_socache_shmcb.so все еще могут быть загружены, если mod_session.so активен в httpd.conf