Apache 2.4 неможливо завантажити, і його неможливо зупинити на Windows Server


11

У нас є два Windows Server , один в 2012 R2 , а інший в 2008 R2 , який використовує Apache HTTP Server ( httpd) 2,4 в проксі / зворотного проксі - режим (використання ProxyPass, ProxyPassReverseі віртуальні хости конфігурації). Обидва сервери використовують Apache 2.4.27 x64 бінарну збірку від Apache Haus.

У нас є кілька резервних скриптів, що працюють на обох серверах. Вони зупиняють усі сервіси (включаючи Apache), потім роблять резервну копію та знову запускають усі сервіси.

Ці сценарії працюють чудово з кількох років (майже 4 роки). Але починаючи з цього часу July 12, 2018, поведінка зараз дивна. Сценарії резервного копіювання виконують свою роботу, зупиняючи всі сервіси, створюючи резервну копію, але тепер усі служби перезапускаються, крім Apache.

Після дослідження я виявив, що сервіс Apache 2.4.27 не може бути припинений. Під час використання консолі Служб та спроби зупинити послугу вручну на консолі відображається "Стоп", і нічого не відбувається.

Тому я перевірив запущені процеси і побачив, що httpd.exeпроцес працює. Я намагався вбити цей процес, але не пощастило.

Отже, я спробував:

taskkill /im "httpd.exe" /f /t

А вихід:

ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.

Тож я перевірив, щоб вбити процес із pskillSysinternals:

pskill -t 560

А вихід:

Copyright (C) 1999-2016  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 5956 killed.

Але це помилково, оскільки httpdпроцес завжди працює!

Тому я оновив Apache з 2.4.27 до 2.4.34, але проблема залишається. Єдине, що потрібно зробити для розблокування ситуації - це перезавантажити весь сервер.

Я перевірив встановлені оновлення, і деякі з них були встановлені July 11, 2018так напередодні:

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

Тож я припускаю, що проблема пов’язана з одним із цих оновлень. Отже, перед тим, як видалити їх усіх, чи є хтось із такою ж проблемою, як і я, я маю на увазі, що Apache 2.4 стає неможливим і неможливо зупинити його на Windows Server?

Велика проблема полягає в тому, що якщо цей httpdпроцес неможливо вбити, Apache не може бути перезапущений, оскільки порт 80 вже пов'язаний.


3
У заголовку це звучить як монстр кіно ..
Trotski94

Захотілося хахаха
SiZiOUS

Відповіді:


10

Гаразд, тому я думаю, що я був на правильному шляху.

Після пошуку в Інтернеті про нещодавно встановлені оновлення, KB4338818 є тим, що викликає проблеми.

Це відбувається для інших програмних засобів, таких як FileZilla Server, докладно описаних тут .

Я щойно видалив це оновлення безпеки, і тепер Apache можна запустити / зупинити як звичайно!

Тож сподіваюся, що Microsoft виправить це в подальшому оновлення!


Я бачу, що ти знайшов свою відповідь, але мені було цікаво, чи перезапуск сервера також вирішив би проблему? Крім того, якщо оновлення застосовувалося під час запуску Apache, можливо, це може не спричинити проблеми.
MonkeyZeus

Так, як я вже пояснював у оригінальному запитанні, єдине рішення розблокувати ситуацію - це перезапустити весь сервер ... що є брудним вирішенням проблеми!
SiZiOUS

Вибачте, я пропустив цю деталь, її трохи поховали. Після перезавантаження чи залишився процес неможливим? Мене просто запитують, оскільки я працюю під управлінням Windows 7 x64 з Apache на своїй локальній машині, але ще не отримав KB4338818, тому я хочу знати, що чекати.
MonkeyZeus

1
Без проблем, ви не повинні виправдовувати свій коментар. :) Після перезавантаження, якщо ви налаштували Apache на автоматичний запуск, він запрацює. Але коли ви спробуєте зупинити послугу (вручну або за допомогою скриптів), httpdпроцес застигне і стане неможливим відмовитись.
SiZiOUS



1

KB4338831, здається, вирішує проблему для Windows Server 2012 R2.

Це оновлення, що не стосується безпеки, включає в себе покращення та виправлення, що входили до складу KB4338815 (випущена 10 липня 2018 року), а також включає ці нові покращення якості як попередній перегляд наступного оновлення щомісячного збору. Джерело: 18 липня 2018 року - KB4338831 (Попередній перегляд щомісячного збору)

Він доступний у якості рекомендованого оновлення для оновлення Windows.


0

Я думаю, ви точно на правильному шляху. У мене була аналогічна проблема з Tomcat на Windows Server. У мене був ще один сервер з Tomcat, який не відчував проблеми, і єдина головна відмінність, яку я міг знайти, - це те, що на робочому сервері встановлений IIS та працює на інших портах. Як обхід я намагався завантажити IIS на проблемний сервер, налаштовуючи веб-сайт за замовчуванням, щоб він використовував нестандартні порти, і проблема, схоже, відпала без необхідності видаляти оновлення.


1
Гаразд ... я повертаю це назад ... трюк IIS, здається, працює деякий час. Порт 80, здається, виправлений завантаженням IIS, але 443 працює лише деякий час. Крім того, для мене оскаржувальним оновленням здається KB4338815. Принаймні для мого виробничого сервера це єдине, що працює на ньому, тому я можу перезавантажити майже так само просто, як перезапуск Tomcat.
Дон Преціозо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.