Вчера вечером, 17 июля, в 19:57:18 Apache2 выключился и перестал работать. Я не заметил до сегодняшнего дня (18-го числа).
Обновления произошли: /var/log/apt/history.log показывает, что было выполнено 3 обновления:
Start-Date: 2018-07-17 19:57:18
Commandline: apt-get -y install apache2 Install: libjansson4:amd64
(2.7-3, automatic) Upgrade: apache2-data:amd64 (2.4.33-
3.0+ubuntu16.04.1+deb.sury.org+1, 2.4.34-
1+ubuntu16.04.1+deb.sury.org+5), apache2-bin:amd64 (2.4.33-
3.0+ubuntu16.04.1+deb.sury.org+1, 2.4.34
1+ubuntu16.04.1+deb.sury.org+5), apache2:amd64 (2.4.33
3.0+ubuntu16.04.1+deb.sury.org$ End-Date: 2018-07-17 19:57:23
Start-Date: 2018-07-17 19:57:37
Commandline: apt-get -y install apache2-doc
Upgrade: apache2-doc:amd64 (2.4.33-3.0+ubuntu16.04.1+deb.sury.org+1,
2.4.34-1+ubuntu16.04.1+deb.sury.org+5)
End-Date: 2018-07-17 19:57:39
Start-Date: 2018-07-17 19:57:43
Commandline: apt-get -y install apache2-suexec-custom
Upgrade: apache2-suexec-custom:amd64 (2.4.33-
3.0+ubuntu16.04.1+deb.sury.org+1, 2.4.34-
1+ubuntu16.04.1+deb.sury.org+5)
End-Date: 2018-07-17 19:57:44
При входе: /etc/init.d/apache2 start
Я получил: Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
failed!
systemctl status apache2.service дает:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled;
vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-07-18 15:01:46
MST; 3min 50s ago
Process: 8835 ExecStop=/usr/sbin/apachectl stop (code=exited,
status=0/SUCCESS)
Process: 21710 ExecStart=/usr/sbin/apachectl start (code=exited,
status=1/FAILURE)
Main PID: 8832 (code=exited, status=1/FAILURE)
journalctl -xe дает мне это:
Jul 18 15:20:04 ns1.[masked].com apachectl[23823]: apache2: Syntax
error on line 146 of /etc/apache2/apache2.conf: Syntax error on line
2 of /etc/apache2/mods-enabled/lbmethod_byrequests.load:
Строка 146 /etc/apache2/apache2.conf гласит:
DefaultRuntimeDir ${APACHE_RUN_DIR}
и строка 2 /etc/apache2/mods-enabled/lbmethod_byrequests.load:
LoadModule lbmethod_byrequests_module /usr/lib/apache2/modules/mod_lbmethod_byrequests.so
На данный момент я полностью потерялся. Строка 146 просто ссылается на файл .load, который указывает путь к существующему файлу ... поэтому я не знаю, какая синтаксическая ошибка находится в строке 2 lbmethod_byrequests.load.
У кого-нибудь еще возникли проблемы с Apache после обновления до 2.4.34?
Вы упускаете часть ошибки. Полная ошибка:
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error
on line 2 of /etc/apache2/mods-enabled/lbmethod_byrequests.load: Cannot load
/usr/lib/apache2/modules/mod_lbmethod_byrequests.so into server:
/usr/lib/apache2/modules/mod_lbmethod_byrequests.so: undefined symbol:
ap_proxy_balancer_get_best_worker
Похоже, это вызвано порядком загрузки модулей. lbmethod_byrequests зависит от доверенное лицо но lbmethod_byrequests загружается первым, что приводит к ошибке неопределенного символа, которая доверенное лицо обеспечил бы, если бы он был загружен.
если ты mv /etc/apache2/mods-enabled/lbmethod_byrequests.load /etc/apache2/mods-enabled/zzlbmethod_byrequests.load
, Apache запускается нормально. К сожалению, я не могу сказать, почему это происходит сейчас и не было раньше.
Мне пришлось изменить порядок загрузки модулей в proxy.conf по аналогичному сценарию:
Я использую пакет alpine apache2-proxy. Это не работает с:
cannot load modules/mod_lbmethod_bybusyness.so into server:
Error relocating /var/www/modules/mod_lbmethod_bybusyness.so:
ap_proxy_balancer_get_best_worker: symbol not found
Парни Вот говорили об исправлении ошибки, но порядок загрузки все еще остается проблемой. Я не на 100% разбираюсь в деталях, но в моем случае конфигурация прокси-сервера была в другом месте:
etc/apache2/conf.d/proxy.conf
Здесь я убедился, что mod_proxy.so был указан до того, как проблема с mod_lbmethod_byrequests была решена. У меня ушло всего полдня.