Apache 2.4 tidak dapat diraih dan tidak dapat dihentikan pada Windows Server

11

Kami memiliki dua Windows Server , satu di 2012 R2 dan yang lainnya di 2008 R2 yang menggunakan Apache HTTP Server ( httpd) 2.4 dalam mode proxy / reverse-proxy (penggunaan ProxyPass, ProxyPassReversedan konfigurasi Host Virtual). Kedua server menggunakan Apache 2.4.27 x64 binary build dari Apache Haus.

Kami memiliki beberapa skrip cadangan yang berjalan di kedua server. Mereka menghentikan semua layanan (termasuk Apache) kemudian melakukan pencadangan dan memulai kembali semua layanan lagi.

Skrip ini berfungsi dengan baik sejak beberapa tahun (hampir 4 tahun). Tetapi mulai dari July 12, 2018, perilakunya sekarang aneh. Skrip cadangan melakukan tugasnya, menghentikan semua layanan, membuat cadangan tetapi sekarang, semua layanan dihidupkan ulang kecuali Apache.

Setelah menyelidiki, saya menemukan bahwa layanan Apache 2.4.27 tidak dapat dihentikan. Saat menggunakan konsol Layanan dan mencoba menghentikan layanan secara manual, konsol menampilkan "Berhenti" dan tidak ada yang terjadi.

Jadi saya memeriksa proses yang berjalan dan melihat bahwa suatu httpd.exeproses sedang berjalan. Saya mencoba untuk membunuh proses itu tetapi tidak berhasil.

Jadi, saya mencoba:

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

Dan hasilnya adalah:

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

Jadi saya diuji untuk mematikan proses dengan pskilldari Sysinternals:

pskill -t 560

Dan hasilnya adalah:

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

Process 5956 killed.

Tapi ini salah, karena httpdprosesnya selalu berjalan!

Jadi saya telah memperbarui Apache dari 2.4.27 ke 2.4.34, tetapi masalahnya tetap ada. Satu-satunya hal yang harus dilakukan untuk membuka blokir situasi adalah me-reboot seluruh server.

Saya memeriksa pembaruan yang diinstal, dan beberapa di antaranya diinstal July 11, 2018satu hari sebelumnya:

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

Jadi saya kira masalahnya adalah dari salah satu pembaruan ini. Jadi sebelum menghapus semua dari mereka, apakah ada seseorang yang memiliki masalah yang sama seperti saya, maksud saya Apache 2.4 menjadi tidak dapat diraih dan tidak dapat dihentikan pada Windows Server?

Masalah besarnya adalah, jika httpdproses itu tidak dapat dimatikan, Apache tidak dapat dimulai kembali karena port 80 sudah terikat.

SiZiOUS
sumber
3
Judulnya membuatnya terdengar seperti monster film ..
Trotski94
Itu dicari hahaha
SiZiOUS

Jawaban:

10

OK, jadi saya pikir saya berada di jalur yang benar.

Setelah mencari di Web tentang pembaruan yang baru diinstal, KB4338818 adalah yang menyebabkan masalah.

Ini terjadi untuk perangkat lunak lain, seperti FileZilla Server, seperti yang dijelaskan di sini .

Saya baru saja menghapus Pembaruan Keamanan ini dan sekarang Apache dapat dimulai / dihentikan seperti biasa!

Jadi saya berharap Microsoft akan memperbaikinya di pembaruan yang lebih baru!

SiZiOUS
sumber
Saya melihat Anda telah menemukan jawaban Anda tetapi saya bertanya-tanya apakah server restart juga akan memperbaiki masalah? Selain itu, jika pembaruan diterapkan ketika Apache tidak berjalan maka ada kemungkinan bahwa itu tidak menyebabkan masalah.
MonkeyZeus
Ya, seperti yang sudah saya jelaskan dalam pertanyaan awal, satu-satunya solusi untuk membuka blokir situasi adalah dengan me-restart seluruh server ... yang merupakan solusi kotor!
SiZiOUS
Maaf, saya melewatkan detail itu, itu agak terkubur. Setelah reboot, apakah prosesnya tetap tidak dapat dibunuh? Saya hanya bertanya karena saya menjalankan Windows 7 x64 dengan Apache di mesin lokal saya tetapi belum menerima KB4338818 jadi saya ingin tahu apa yang diharapkan.
MonkeyZeus
1
Tidak masalah, Anda tidak perlu menjustifikasi komentar Anda. :) Setelah reboot, jika Anda mengatur Apache untuk memulai secara otomatis, itu akan berfungsi. Tetapi ketika Anda mencoba untuk menghentikan layanan (secara manual atau dengan menggunakan skrip) httpdprosesnya akan membeku dan menjadi tidak dapat dibunuh.
SiZiOUS
1

KB4338831 tampaknya memperbaiki masalah untuk Windows Server 2012 R2.

Pembaruan non-keamanan ini mencakup peningkatan dan perbaikan yang merupakan bagian KB4338815 (dirilis 10 Juli 2018) dan juga mencakup peningkatan kualitas baru ini sebagai pratinjau pembaruan Rollup Bulanan berikutnya. Sumber: 18 Juli 2018 — KB4338831 (Pratinjau Rollup Bulanan)

Ini tersedia sebagai pembaruan yang disarankan pada Pembaruan Windows.

Alessandro Brandão
sumber
0

Saya pikir Anda pasti berada di jalur yang benar. Saya mengalami masalah serupa dengan Tomcat di Windows Server. Saya punya server lain dengan Tomcat yang tidak mengalami masalah, dan satu-satunya perbedaan utama yang bisa saya temukan adalah server yang berfungsi juga menginstal dan menjalankan IIS pada port lain. Sebagai solusi, saya mencoba memuat IIS pada server masalah yang mengatur situs web standar sehingga menggunakan port non-standar dan masalah tampaknya telah hilang tanpa harus menghapus pembaruan.

Don Prezioso
sumber
1
Oke ... saya ambil kembali ... trik IIS sepertinya hanya berfungsi beberapa waktu saja. Port 80 tampaknya diperbaiki dengan memuat IIS, tetapi 443 hanya berfungsi beberapa waktu. Juga, bagi saya pembaruan yang menyinggung tampaknya adalah KB4338815. Setidaknya untuk server produksi saya, ini adalah satu-satunya hal yang berjalan di sana, jadi saya dapat mem-boot ulang hampir semudah me-restart Tomcat.
Don Prezioso