macOS Localhost Bağlantı Reddi
Sistem güncellemesi ya da konfigürasyon değişikliklerinde sıklıkla yapılandırma sorunları ile karşılaşabilmekteyiz. Sorunun kaynağıdan ziyade, genellikle hazır çözümlere odaklanıyor olmamız sanırım bu durumun da nedenselliğini oluşturmakta.
Daha evvel macOS ortamının doğrudan Apache desteği sunduğundan bahsetmiştim. Bu yazıda da, Apache desteğine dair karşılaşılan1 ve tartışma forumlarında sıklıkla yer ettiğini gördüğüm (özellikle sistem güncellemeleri yükseltmeleri sonucunda) bir hataya ve çözümlenmesine değineceğim.
Error code: ERR_CONNECTION_REFUSED
Tartışma forumlarını incelediğimde ilgili hata ile çoğunlukla sistem güncellemesi sonrasında karşılaşıldığını gördüm. Yakın zamanda duyurulan macOS 10.15 Catalina2 da bu sorunun kaynaklarından biri olarak görülmekte. Sorun başlıkta da belirtildiği üzere, localhost (veya 127.0.0.1) bağlantısı gerçekleştirmek istediğinizde bağlantının reddedilmesi ile ortaya çıkmakta ve localhost refused to connect
şeklinde bir hata mesajı ile ortaya çıkmakta. Yazının giriş bölümünde de belirttiğim üzere bu sorunun temelinde konfigürasyon hataları yatmakta. Peki, bu hatayı nasıl çözebiliriz?
Öncelikle, tartışma forumlarında http.conf
içeriğine dair pek çok öneri yer almakta. Bu hazır içerikleri kullanarak sorundan kurtulabilirsiniz. Ancak, sorunun temelinde yatan durum konusunda bir fikriniz olmaz ise aynı sorunla tekrar yüzleşmeniz oldukça mümkün. Dolayısıyla, adım adım ilerleyerek sorunun neden kaynaklandığını anlamalı ve buna yönelik çözümler üretmeliyiz. O halde, başlayalım.
Configtest
Apache
yapılandırma dosyasında sözdizimi denetimi yapmak ve var ise hataları dökmek istediğimizde configtest
argümanından faydalanabiliriz3.
apachectl configtest
İlgili komutu uygulamamızın ardından yukarıdaki soruna dair satır bildirimleri karşımıza çıkacaktır. Aşağıda dönmesi muhtemel hatalardan ikisini görebilirsiniz.
AH00117: Ignoring deprecated use of DefaultType in line 403 of /private/etc/apache2/httpd.conf.
AH00526: Syntax error on line 10 of /private/etc/apache2/extra/httpd-userdir.conf:
Invalid command 'UserDir', perhaps misspelled or defined by a module not included in the server configuration
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.***.**.***. Set the 'ServerName' directive globally to suppress this message
Hataların içeriğine bağlı olarak httpd.conf
dosyasını metin editörü ile görüntülemeli, ilgili satıra gitmeli ve gereken işlemleri gerekleştirmeliyiz. Yukarıdaki hataların çözümü, ilgili satırlara gidip modülleri pasif hale getirmekti. Bu işlem için satırın başına #
yorum işaretini bırakmak yeterli olacaktır.
cd /etc/apache2
sudo nano httpd.conf
İlgili dosyada yapılan değişikliklerin ardından dosyayı kaydetmeli ve tekrar konfigürasyonu sınamalıyız.
apachectl configtest
Sınamanın ardından varsa farklı hatalar yine listelenecektir ve yine yukarıdaki gibi ilgili modülü pasif hale getirmek, eksik bir modül var ise yüklemek gibi adımları Syntax OK
dönüşünü alana kadar yinelemeliyiz. Bu mesajı aldığımızda artık bir konfigürasyon hatası söz konusu olmamaktadır. Dolayısıyla sunucuyu yeniden başlatabiliriz.
sudo apachectl restart
Evet, hepsi bu kadar. Artık localhost (127.0.0.01) bağlantı isteğimizi reddetmeyecek ve görüntülemek istediğimiz dosyaya ulaşabileceğiz.