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.

AA

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.

İleri Okumalar