Я только что установил mod_jk с моей установкой Apache httpd 2.0.52, но теперь, когда я пытаюсь запустить Apache, у него возникает ошибка сегментации. Я проверил, что использую mod_jk, скомпилированный для 2.0.x .., фактически созданный для той же версии, что и у меня. Я также проверил, что путь, который я указываю для LoadModule, правильный, а разрешения и права собственности на файл такие же, как и у остальных модулей. Когда я удаляю команду «LoadModule» для mod_jk из моего httpd.conf, ошибки сегментации не возникает.
В журналах ошибок Apache ничего не отображается. Я попытался перезапустить сервер с этим модулем, используя оба service httpd restart
и httpd
.
Это последние несколько строк, возвращаемых strace httpd -X
:
gettimeofday({1292100295, 434487}, NULL) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 EAFNOSUPPORT (Address family not supported by protocol)
socket(PF_NETLINK, SOCK_RAW, 0) = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=22378, groups=00000000}, [12]) = 0
time(NULL) = 1292100295
sendto(3, "\24\0\0\0\26\0\1\3\307\342\3M\0\0\0\0\0\305\333\267", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"<\0\0\0\24\0\2\0\307\342\3MjW\0\0\2\10\200\376\1\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 664
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\307\342\3MjW\0\0\0\0\0\0\1\0\0\0\10\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(3) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 22378 detached
У кого-нибудь была подобная проблема при использовании Apache 2.0.52 с mod_jk? Я могу попробовать загрузить и собрать исходный код для сервера Apache и mod_jk самостоятельно, если для этого не обнаружено исправления.
Это предварительно скомпилированный mod_jk, который вы нашли? Если это так, то достаточно просто взять последний исходный код для mod_jk и скомпилировать его, я подозреваю, что здесь ваша проблема - я много раз скомпилировал mod_jk для поставляемого поставщиком (Red Hat) Apache без ошибок segfaults.
Убедитесь, что httpd-devel установлен (Red Hat / CentOS)
Распакуйте настоящий JDK по некоторому пути, например /usr/local/jdk1.6.0_18/
Возьмите исходный код "tomcat-connector" с tomcat.apache.org и скомпилируйте его:
cd tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/sbin/apxs --with-java=/usr/local/jdk1.6.0_18 --enable-prefork
make
cp apache-2.0/mod_jk.so /etc/httpd/modules/
Теперь ваши модули должны работать должным образом.