Apache 2.4 kullanılamaz ve Windows Server'da durdurulamaz


11

Biz iki sahip Windows Server , bir tane 2012 R2 ve diğer 2008 R2 kullanan Apache HTTP Sunucusu ( httpd) 2.4 vekaleten / ters proxy modu (kullanımı ProxyPass, ProxyPassReverseve Sanal Sunucular yapılandırma). Her iki sunucu da Apache Haus'un Apache 2.4.27 x64 ikili sürümünü kullanır .

Her iki sunucuda da çalışan bazı yedekleme komut dosyalarımız var. Tüm hizmetleri durdururlar (Apache dahil), yedeklemeyi yaparlar ve tüm hizmetleri yeniden başlatırlar.

Bu senaryolar birkaç yıldan beri (neredeyse 4 yıl) iyi çalışıyor. Ancak, başlangıçtan itibaren July 12, 2018, davranış artık garip. Yedek komut dosyaları işlerini yapıyor, tüm hizmetleri durduruyor, yedek yapıyor, ancak şimdi Apache hariç tüm hizmetler yeniden başlatılıyor.

Araştırdıktan sonra Apache 2.4.27 hizmetinin durdurulamadığını gördüm. Hizmetler konsolunu kullanırken ve hizmeti manuel olarak durdurmaya çalışırken konsolda "Durduruluyor" mesajı görüntülenir ve hiçbir şey olmaz.

Bu yüzden çalışan süreçleri kontrol ettim ve bir httpd.exesürecin çalıştığını gördüm . Bu süreci öldürmeye çalıştım ama hiç şansım yoktu.

Bu yüzden denedim:

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

Ve çıktı:

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

Bu yüzden pskillSysinternals ile süreci öldürmek için test ettim :

pskill -t 560

Ve çıktı:

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

Process 5956 killed.

Ancak bu, httpdişlem her zaman devam ettiği için yanlıştır !

Bu yüzden Apache'yi 2.4.27'den 2.4.34'e güncelledim, ancak sorun devam ediyor. Durumun engelini kaldırmak için yapılacak tek şey sunucunun tamamını yeniden başlatmaktır.

Yüklü güncellemeleri kontrol ettim ve bazıları July 11, 2018bir gün önce kuruldu :

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

Bu yüzden problemin bu güncellemelerin birinden olduğunu düşünüyorum. Yani hepsini kaldırmadan önce, benimle aynı problemi olan biri var mı, yani Apache 2.4, unkillable olur ve Windows Server'da durdurulamaz mı?

Büyük sorun, eğer bu httpdsüreç öldürülemezse, 80 numaralı port zaten bağlı olduğundan Apache yeniden başlatılamaz.


3
Başlık bir film canavarı gibi geliyor ..
Trotski94

Yanıtlar:


10

Tamam, bence doğru yoldaydım.

Web'de son yüklenen güncelleştirmeler hakkında arama yaptıktan sonra, sorunlara neden olan KB4338818'dir .

Bu, burada ayrıntılı olarak açıklandığı gibi FileZilla Server gibi diğer yazılımlar için oluyor .

Bu Güvenlik Güncellemesini yeni kaldırdım ve şimdi Apache normal şekilde başlatılabilir / durdurulabilir!

Umarım Microsoft bunu daha sonraki bir güncellemede düzeltir!


Cevabınızı bulduğunuzu görüyorum, ancak sunucunun yeniden başlatılmasının da sorunu çözüp çözmeyeceğini merak ediyordum? Ayrıca, güncelleştirme Apache çalışmazken uygulanmışsa, sorunlara yol açmamış olabilir.
MonkeyZeus

Evet, orijinal soruda zaten açıkladığım gibi, durumun engelini kaldırmak için tek çözüm tüm sunucuyu yeniden başlatmaktır ... bu kirli bir çözümdür!
SiZiOUS

Üzgünüm, bu detayı kaçırdım, biraz gömüldü. Yeniden başlatıldıktan sonra işlem yapılamaz mı kaldı? Sadece soruyorum çünkü Windows 7 x64'ü yerel makinemde Apache ile çalıştırıyorum ancak KB4338818'i henüz almadım, bu yüzden ne olacağını bilmek istiyorum.
MonkeyZeus

1
Sorun değil, yorumunuzu haklı göstermek zorunda değilsiniz. :) Yeniden başlattıktan sonra, Apache'yi otomatik olarak başlayacak şekilde ayarladıysanız, çalışır. Ancak hizmeti (el ile veya komut dosyaları kullanarak) durdurmaya çalıştığınızda httpdişlem donacak ve kilidini açacaktır.
SiZiOUS



1

KB4338831, Windows Server 2012 R2 için sorunu çözüyor gibi görünüyor.

Güvenlikle ilgili olmayan bu güncelleştirme, KB4338815 (10 Temmuz 2018'de yayımlanan) parçası olan iyileştirmeler ve düzeltmeleri içerir ve ayrıca bu yeni kalite iyileştirmelerini bir sonraki Aylık Toplama güncelleştirmesinin önizlemesi olarak içerir. Kaynak: 18 Temmuz 2018 — KB4338831 (Aylık Toplama Önizlemesi)

Windows Update'te önerilen bir güncelleştirme olarak kullanılabilir.


0

Bence kesinlikle doğru yoldasınız. Windows Server'da Tomcat ile benzer bir sorun yaşıyordum. Tomcat ile sorun yaşamadığım başka bir sunucum vardı ve bulabildiğim tek büyük fark, çalışma sunucusunun IIS'nin diğer bağlantı noktalarında yüklü ve çalışıyor olmasıydı. Geçici çözüm olarak IIS'yi varsayılan web sitesini ayarlayan sorun sunucusuna yüklemeyi denedim, böylece standart dışı bağlantı noktaları kullanıldı ve sorun güncelleştirmeyi kaldırmadan ortadan kaybolmuş gibi görünüyor.


1
Tamam ... Geri alıyorum ... IIS hilesi sadece bir süre çalışıyor gibi görünüyor. Bağlantı noktası 80, IIS yüklenirken düzeltilmiş gibi görünüyor, ancak 443 yalnızca bir süre çalışıyor. Ayrıca, benim için rahatsız edici güncelleme KB4338815 gibi görünüyor. En azından üretim sunucum için üzerinde çalışan tek şey bu, bu yüzden Tomcat'i yeniden başlatmak kadar kolay bir şekilde yeniden başlatabilirim.
Don Prezioso
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.