Apache2 Falha ao iniciar após a atualização recente para 2.4.34, não há nenhuma pista do porquê

1

Às 7:57:18 da noite passada, 17 de julho, Apache2 desligou e parou de trabalhar. Eu não percebi até hoje cedo (dia 18).

Atualizações ocorridas : /var/log/apt/history.log mostra que foram realizadas 3 atualizações:

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

Ao entrar : /etc/init.d/apache2 start

Eu recebo: 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 produz:

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 me dá isto:

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:

Linha 146 das leituras /etc/apache2/apache2.conf:

DefaultRuntimeDir ${APACHE_RUN_DIR}

e linha 2 do /etc/apache2/mods-enabled/lbmethod_byrequests.load:

LoadModule lbmethod_byrequests_module /usr/lib/apache2/modules/mod_lbmethod_byrequests.so

Neste ponto, estou completamente perdido. A linha 146 apenas faz referência ao arquivo .load que aponta para um caminho para um arquivo que existe ... por isso não sei qual é o erro de sintaxe na linha 2 do lbmethod_byrequests.load.

Alguém mais tendo problemas com o Apache após a atualização para a versão 2.4.34?

    
por Jon Griffith 19.07.2018 / 00:35

2 respostas

5

Você está perdendo parte do erro. O erro completo é:

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

Parece ser causado pela ordem de carregamento do módulo. lbmethod_byrequests depende do proxy , mas lbmethod_byrequests está sendo carregado primeiro, levando a um erro de símbolo indefinido que o proxy forneceria se foi carregado.

Se você mv /etc/apache2/mods-enabled/lbmethod_byrequests.load /etc/apache2/mods-enabled/zzlbmethod_byrequests.load , o Apache inicia normalmente. Infelizmente não posso dizer por que isso acontece agora e não aconteceu antes.

    
por 19.07.2018 / 04:44
1

Eu tive que mudar a ordem de carregamento do módulo no proxy.conf em um cenário similar:

Estou executando o pacote apache2-proxy alpino. Ele falha com:

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 

Os caras aqui estavam falando sobre um bug sendo corrigido, mas a ordem de carregamento ainda sendo um problema. Não estou 100% claro nos detalhes, mas na minha instância a configuração do proxy estava em um lugar diferente:

etc/apache2/conf.d/proxy.conf

Certifiquei-me de que mod_proxy.so estava listado antes de mod_lbmethod_byreququests Problema resolvido. Só me levou meio dia.

    
por 03.10.2018 / 15:21