ServBay Web Sunucusu Sorun Giderme Rehberi
ServBay, varsayılan Web sunucusu olarak Caddy, NGINX ve Apache desteğiyle esnek bir yerel geliştirme ortamı sunar. Kullanım sırasında sitenizin erişilememesi, yavaş yüklenmesi ya da (ör. 500 Dahili Sunucu Hatası gibi) hatalarla karşılaşmanız olasıdır. Bu rehber, ServBay ortamındaki yaygın Web sunucu kaynaklı sorunların teşhis ve çözümünde size yardımcı olmak için hazırlanmıştır.
ServBay Dahili Sorun Giderme Aracını Kullanma
ServBay, sık karşılaşılan konfigürasyon ve hizmet hatalarını otomatik olarak tespit edip öneriler sunan gelişmiş bir sorun giderme aracı içerir. Herhangi bir sorunla karşılaştığınızda öncelikle bu aracı kullanmanız şiddetle tavsiye edilir.
ServBay uygulamasını açın ve sol menüden Sorun Giderme seçeneğine tıklayarak ServBay’in kendi sorun giderme paneline ulaşın.

Bu araç, ServBay’in çekirdek bileşen durumunu, port kullanımını, konfigürasyon dosyası sözdizimini ve daha fazlasını kontrol eder; bulgularına göre hızlıca sorunları tespit edecek öneriler sunar.
Web Sunucusu Konfigürasyon Dosyalarını Kontrol Etme
Web sunucusu konfigürasyon dosyalarındaki hatalar, sitenin normal şekilde çalışmasını engelleyen en yaygın sebeplerdendir. ServBay, her Web sunucusu için özel sözdizimi kontrol araçları sağlar.
Caddyfile Kontrolü
Caddyfile konfigürasyonunun doğruluğunu test etmek için Caddy’nin dahili validate komutunu kullanın.
/Applications/ServBay/bin/caddy validate -c /Applications/ServBay/etc/caddy/CaddyfileEğer sözdizimi doğruysa, komut Valid configuration sonucunu döndürecektir. Hatalı ise hata tipine göre bilgilendirici mesajlar sunulur.
Dikkat: caddy validate komutu genellikle çok sayıda INFO veya WARN çıktısı verebilir; bunlar çoğunlukla Caddy’nin dahili süreç bilgileridir ve doğrudan bir hata anlamına gelmez. Sonuçta Valid configuration mesajı almak, sözdiziminin doğru olduğunu gösterir.
Yaygın Caddyfile Hata Örnekleri:
Sertifika Dosyası Bulunamadı Hatası:
bash2024/12/09 17:24:16.970 INFO using config from file {"file": "/Applications/ServBay/etc/caddy/Caddyfile"} ... (diğer INFO/WARN satırları) ... Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/mail.servbay.host/mail.servbay.host.1crt: no such file or directory1
2
3loading certificates: open xxxxx: no such file or directorybenzeri bir hata, Caddyfile’da belirtilen SSL sertifikası dosya yolunun yanlış olduğunu ya da dosyanın mevcut olmadığını gösterir. Lütfen Caddyfile’daki sertifika (.crt/.cer/.pem) ve anahtar (.key) dosya yollarını kontrol edin; ilgili dosyaların gerçekten orada olup olmadığından emin olun. ServBay, el ile sertifika yüklemesini ve ACME ile otomatik sertifika başvurularını destekler; ilgili SSL ayarlarını gözden geçirin.Web Sitesi Kök Dizin Hatası (Boşluk İçeriyor):
bash2024/12/09 17:26:37.371 INFO using config from file {"file": "/Applications/ServBay/etc/caddy/Caddyfile"} Error: adapting config using caddyfile: parsing caddyfile tokens for 'root': too many arguments; should only be a matcher and a path, at /Applications/ServBay/etc/caddy/Caddyfile:13881
2parsing caddyfile tokens for 'root': too many argumentshatası, genellikle kök dizin yolunda boşluk olmasından kaynaklanır. Örneğin,root * /Applications/ServBay/www/public webifadesindekipublic web, Caddy tarafından iki ayrı argüman olarak algılanır. Doğru kullanım, boşluklu yolu çift tırnak"..."içine almak olacaktır:root * "/Applications/ServBay/www/public web".Tavsiye: Bu tür hataları önlemek için dosya ve klasör adlarında boşluk veya özel karakter kullanmaktan kaçının. Kelime ayırmak için kısa çizgi
-ya da alt çizgi_kullanabilirsiniz (örn.public-folderveyapublic_dir).Rewrite (Yönlendirme) Kuralı Hatası:
Caddyfile’da Caddy’nin desteklemediği şekilde (örn. doğrudan NGINX kurallarının kopyalanmasıyla) yazılan rewrite (yönlendirme) kuralları, doğrulamada başarısızlığa yol açar. Lütfen Caddy Rewrite Modülü dökümanını veya ServBay’in NGINX’ten ServBay’e site taşıma rehberini inceleyin.
NGINX Konfigürasyon Kontrolü
NGINX konfigürasyonunun sözdizimi ve geçerliliğini test etmek için dahili -t parametresini kullanın.
/Applications/ServBay/bin/nginx -tEğer yapılandırma doğruysa, aşağıdaki çıktılar alınır:
nginx: the configuration file /Applications/ServBay/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /Applications/ServBay/etc/nginx/nginx.conf test is successful2
Bir hata durumunda, NGINX hata yapılan dosya ve satır numarasıyla bildirimde bulunacaktır. Yaygın NGINX konfigürasyon hataları:
- Sözdizimi Hatası: Eksik noktalı virgül
;veya uyuşmayan süslü parantez}gibi hatalar. - Dosya Yolu Hataları:
includeveya diğer komutlarda yanlış ya da bulunamayan dosya/dizin yolları. - Port Çakışması: Tanımlı portun başka bir program tarafından kullanılması.
Apache Konfigürasyon Kontrolü
Apache yapılandırmasını kontrol etmek için apachectl configtest komutunu yürütebilirsiniz.
/Applications/ServBay/bin/apachectl configtestDoğru yapılandırma için komut Syntax OK şeklinde dönüş yapar. Hatalı yapılandırmada ise ayrıntılı hata mesajı verir. Yaygın Apache hataları şunlardır:
- Modül Yükleme Hatası: Yapılandırmada etkinleştirilen (
LoadModule) modülün kurulu olmaması veya yolunun yanlış girilmesi. - .htaccess Sözdizimi Hataları: Site dizininde bulunan
htaccessdosyasındaki sözdizimi hataları, genel veya ilgili dizinde erişim sorunlarına yol açar. - Dizin İzinleri Sorunu:
DirectoryveyaFilestalimatlarındaki (Require,Allow,Deny) eksik ya da yanlış izinler, dosya erişimini engelleyebilir.
500 Dahili Sunucu Hatası Çözümü
500 Internal Server Error, sunucunun isteği işlerken beklenmeyen bir durumla karşılaştığını ve isteği tamamlayamadığını gösteren genel bir HTTP durum kodudur. Web uygulamalarında, genellikle arka uç betiğinde (örn. PHP, Python, Node.js gibi) bir hata oluştuğuna işaret eder.
Genel Sorun Giderme Adımları
500 hatası aldığınızda aşağıdaki adımları izleyebilirsiniz:
Web Sunucusu Hata Kayıtlarını İnceleyin: Bu, 500 hatalarının araştırmasındaki ilk adımdır. Hata kayıtları, betik hataları, eksik dosyalar, izin sorunları gibi ayrıntılı bilgiler içerir.
- Caddy:
/Applications/ServBay/var/logs/caddy/error.log - NGINX:
/Applications/ServBay/var/logs/nginx/error.log - Apache:
/Applications/ServBay/var/logs/apache/error.logEn güncel kayıt girdilerindeerrorveyacriticalkelimelerini arayın.
- Caddy:
Arka Uç Hizmetlerini (örn. PHP-FPM) Kontrol Edin: Web siteniz PHP’ye bağımlıysa, PHP-FPM hizmetinin çalıştığından emin olun.
bashps aux | grep php-fpm1php-fpm: master processveyaphp-fpm: pool wwwifadelerinin bulunduğu satırları arayın. Proses yoksa, PHP-FPM başlatılmamış veya çökmüş demektir. ServBay UI ya daservbayctlkomutuyla PHP servislerini başlatabilirsiniz.Arka Uç Betik (örn. PHP) Hata Kayıtlarını Kontrol Edin: Web sunucusu logunda FastCGI ya da arka uç betik hata bildirimi varsa, ilgili programın hata kayıtlarına göz atın.
- PHP:
/Applications/ServBay/var/logs/php/php_error.logPHP hata kaydındaFatal error,Parse error,Warning,Noticegibi mesajlar arayın, özellikle ziyaret ettiğiniz betiğe ait olanları.display_errorsayarının üretim ortamında kapalı, geliştirmede ise ayrıntıları görebilmek için geçici olarak açık olması önerilir (genelliklephp.inidosyasında düzenlenir).
- PHP:
Dosya ve Dizin İzinlerini Kontrol Edin: Web sunucusu genellikle sistemde
_wwwgibi özel bir kullanıcıyla çalışır; sitenizin dosya ve dizinlerinde okuma (ve gerekiyorsa yazma) izni olmalıdır.bashls -la /Applications/ServBay/www/your-site/1Web sunucusu kullanıcısının site kökü, alt klasörler ve dosyalar üzerinde okuma yetkisi olmalı. Dosya yükleme veya log yazmada da yazma izni gerekir.
chmodvechownile izinleri güncelleyebilirsiniz; temkinli olun.
Spesifik Web Sunucularında 500 Hatası İçin Kontrol Noktaları
Caddy:
- FastCGI Yapılandırması: Caddyfile’daki
php_fastcgiveyareverse_proxytalimatının, PHP-FPM’in doğru adresine (127.0.0.1:9000veyaunix:/path/to/php-fpm.sock) yönlendirilip yönlendirilmediğini doğrulayın. - PHP-FPM Durumu: Kullanılan PHP versiyonunun ve PHP-FPM servisinin ServBay’de çalışır durumda olduğuna emin olun.
- Ters Proxy Ayarı:
reverse_proxyile Node.js gibi başka bir arka uç servise yönlendirme yapıyorsanız, hedef adres ve portun doğru; arka uç servisin aktif olduğundan emin olun.
- FastCGI Yapılandırması: Caddyfile’daki
NGINX:
fastcgi_passAyarı:nginx.confveya ilgili site yapılandırmasındakifastcgi_passkomutunun PHP-FPM’in doğru adresine işaret ettiğini kontrol edin.client_max_body_size: Büyük dosya yüklemelerinde 500 hatası alıyorsanız, bu ayarın yeterli olup olmadığına bakın.try_filesTalimatı:try_filesyapılandırmasının doğru olup olmadığına, ilgili dosyayı ya da FastCGI’ye yönlendirmeyi sağlayıp sağlamadığına bakın.
Apache:
mod_rewriteModülü:.htaccessile URL yeniden yazma kullanıyorsanız, Apache’demod_rewritemodülünün etkin olduğundan emin olun.- .htaccess Dosya İçeriği:
.htaccess’deki hatalı bir komut doğrudan 500 hatasına neden olabilir. ÖzellikleRewriteRulegibi satırların sözdizimini kontrol edin. AllowOverrideAyarı: Apache ana konfigürasyon dosyasında ilgili dizininAllowOverrideparametresi (Allveya en azındanFileInfoveLimitolmalı).htaccesskomutlarının uygulanmasını sağlamalıdır.
Hizmet Yönetimi
Konfigürasyonları güncelledikten veya arka uç sorunlarını giderdikten sonra, değişikliklerin geçerli olması için genellikle Web sunucusunu veya ilişkili hizmetleri yeniden başlatmak gerekir.
Hizmetleri Yeniden Başlatma
Belirli bir Web sunucusunu yeniden başlatmak için servbayctl restart komutunu kullanın.
# Caddy servisini yeniden başlat
servbayctl restart caddy -all
# NGINX servisini yeniden başlat
servbayctl restart nginx -all
# Apache servisini yeniden başlat
servbayctl restart apache -all2
3
4
5
6
7
8
-all parametresi, ilgili Web sunucusu ile bağlantılı ek hizmetleri de yeniden başlatmaya çalışır; örneğin FastCGI yapılandırıldıysa PHP-FPM servisini de birlikte başlatır.
Hizmet Durumunu Görüntüleme
Belirli bir servisin mevcut durumunu görmek için servbayctl status komutunu kullanabilirsiniz.
# Caddy servis durumunu görüntüle
servbayctl status caddy -all
# NGINX servis durumunu görüntüle
servbayctl status nginx -all
# Apache servis durumunu görüntüle
servbayctl status apache -all2
3
4
5
6
7
8
Çıktıda, servis running (çalışıyor), stopped (durduruldu) vb. statüler gösterilir. Bu sayede servisin başlatılıp başlatılamadığını doğrulayabilirsiniz.
İleri Seviye Sorun Giderme Adımları
Yukarıdaki yöntemler sorunu çözmezse, daha derin sorun tespiti için şu adımları deneyin:
- Tarayıcı Geliştirici Araçlarını Kontrol Edin: F12 tuşu ile geliştirici araçlarını açıp
Konsol (Console)veAğ (Network)sekmelerine geçin. Ön uç JavaScript hataları, ağ isteği durum kodları ve yanıt başlık/gövdesini inceleyerek sorunun kaynağının arka uçta mı, ön uçta mı olduğunu görebilirsiniz. curl -vKomutu ile Test Edin: Terminaldecurl -v your-website.servbay.demokomutunu çalıştırın.-vdetaya inerek istek ve yanıt aşamalarını, başlıkları, SSL/TLS bağlantı detaylarını gösterir.your-website.servbay.demokısmını kendi sitenizin alan adıyla değiştirin.- Geçici Olarak Güvenlik Duvarını Kapatın: macOS’in dahili güvenlik duvarı veya üçüncü taraf güvenlik yazılımları gelen bağlantıları engelleyebilir. Güvenlik duvarını geçici olarak kapatıp sorunun çözülüp çözülmediğine bakın. Sorun çözülürse, ServBay’in kullandığı portlar (ör. 80, 443) için izin ayarlarını düzenleyin.
- Farklı Tarayıcı veya Cihazda Test Edin: Sitenizi başka bir tarayıcıda ya da farklı bir cihazda deneyin. Böylece sorun, tarayıcı önbelleği ya da cihaz kaynaklı mı anlaşılır.
- Yerel DNS veya hosts Dosyasını Kontrol Edin: Özel alan adı (ör.
localhostveya IP haricinde) kullanıyorsanız/etc/hostsya da yerel DNS ayarlarınızı kontrol edin. Alan adınızın doğru şekilde127.0.0.1veya::1adresine yönlendirilmiş olması gerekir.
Sonuç
Web sunucusu arızaları, yerel geliştirme ortamlarında sıkça karşılaşılan zorluklardandır. Konfigürasyon dosyalarının sözdizimini, hata kayıtlarını, hizmet durumunu ve dosya izinlerini sistematik biçimde kontrol ederek çoğu sorunu çözebilirsiniz. ServBay’in dahili tanılama aracı ve servbayctl komut satırı yardımcıları güçlü destek sunar. Karmaşık bir durumda, daha detaylı ServBay dökümantasyonundan veya teknik destek ekibinden yardım almaktan çekinmeyin.
