Webmaster Çantası

DirectAdmin Apache (Httpd) Çalışmama Sorunu Nasıl Çözülür?

Directadmin uzun yıllardır var olan ve sürekli geliştirilen bir hosting kontrol panelidir. Cpanel’in lisans maliyetlerinin artmasından sonra Directadmin kullanım oranında da artış yaşandı. Her yazılımda olduğu gibi Directadmin paneldede bazı zamanlar yazılımsal sorunlar yaşanabiliyor. Eğer son zamanlarda Directadmin panelde güncelleme yaptıysanız sitelerinizin ulaşılamaz olduğunu görebilirsiniz. Bu durumda endişelenmeyin hızlı bir şekilde çözüm yollarını uygulamaya başlayın.

İlk olarak HTTP yani APACHE servisimizin neden çalışmadığını anlamamız gerekiyor.

SSH bağlantısı yaparak terminal üzerinden:

service httpd status -l

komutu ile sorunun detaylı sebebini öğrenelim. Bu tip sorunlarda status komutunun sonuna -l ekleyerek daha detaylı bir bilgi edinebiliriz.

Bizim aldığımız hata şu şekildeydi:

Jul 17 12:13:07 server.domain.com systemd[1]: Starting The Apache HTTP Server…
Jul 17 12:13:08 server.domain.com httpd[14155]: AH00526: Syntax error on line 29 of /usr/local/directadmin/data/users/admin/httpd.conf:
Jul 17 12:13:08 server.domain.com httpd[14155]: Invalid command '|UNIT_PROXY|', perhaps misspelled or defined by a module not included in the server configuration
Jul 17 12:13:08 server.domain.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jul 17 12:13:08 server.domain.com systemd[1]: Failed to start The Apache HTTP Server.
Jul 17 12:13:08 server.domain.com systemd[1]: Unit httpd.service entered failed state.
Jul 17 12:13:08 server.domain.com systemd[1]: httpd.service failed.

Hata çıktımız arasına bir dosyanın içinde 29. satırda hata olduğunu görüyoruz. Aslında bu bir hata değil; sadece web servis yazılımının yazım kuralına aykırı bir durum olduğunu gösteriyor. Aşağıdaki dosyamız web servisimizin yapılandırma dosyası; yani sunucuda bulunan tüm alan adlarının virtual host yapılandırması burada bulunuyor. Bu da hatamızdaki yanlışın sadece 29. satırda olmadığını; sadece ilk yazım yanlışının 29. satırda başladığını gösteriyor. Demek ki diğer domainlerin virtual host yapılandırmalarında da bu sorun mevcut.

AH00526: Syntax error on line 29 of /usr/local/directadmin/data/users/admin/httpd.conf:

Yukarıdaki komutumuzda 29. satıra baktığımızda; hata çıktımızda yer alan diğer bölüm ile karşılaşıyoruz.

Jul 17 12:13:08 server.domain.com httpd[14155]: Invalid command ‘|UNIT_PROXY|’, perhaps misspelled or defined by a module not included in the server configuration

Gördüğünüz üzere APACHE yapılandırmamız içinde |UNIT_PROXY| adında bir fonksiyon mevcut ve bu web servis tarafından yanlış yazılmış ya da geçerli olmayan bir fonksiyon olarak tanımlanıyor.

Bu sorunu çözmek için:

/usr/local/directadmin/data/users/admin/httpd.conf

Dosyamız içindeki tüm |UNIT_PROXY| fonksiyonunu silmemiz gerekiyor. Bu yaşamış olduğumuz sorunun hızlı çözümü. Kalıcı çözümü için yazımızın devamında detayları vereceğim.

Aşağıdaki komut ile her kullanıcının (domainin/hostingin) http yapılandırmasında bulunan UNIT_PROXY fonksiyonunu siliyoruz ve hemen ardından apache (httpd) servisimizi yeniden başlatıyoruz.

sed -i '/|UNIT_PROXY|/d' /usr/local/directadmin/data/ users/*/httpd.conf
service httpd start

DirectAdmin HTTPD Sorunu Kalıcı Çözüm

sed -i '/|UNIT_PROXY|/d' /virtual_host2.conf
sed -i '/|UNIT_PROXY|/d' virtual_host2_secure.conf
sed -i '/|UNIT_PROXY|/d' virtual_host2_secure_sub.conf
sed -i '/|UNIT_PROXY|/d' virtual_host2_sub.conf

İlgili Makaleler

Başa dön tuşu