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/Caddyfile
Eğ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 directory
1
2
3loading certificates: open xxxxx: no such file or directory
benzeri 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:1388
1
2parsing caddyfile tokens for 'root': too many arguments
hatası, genellikle kök dizin yolunda boşluk olmasından kaynaklanır. Örneğin,root * /Applications/ServBay/www/public web
ifadesindekipublic 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-folder
veyapublic_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 -t
Eğ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 successful
2
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ı:
include
veya 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 configtest
Doğ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
htaccess
dosyasındaki sözdizimi hataları, genel veya ilgili dizinde erişim sorunlarına yol açar. - Dizin İzinleri Sorunu:
Directory
veyaFiles
talimatları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.log
En güncel kayıt girdilerindeerror
veyacritical
kelimelerini 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-fpm
1php-fpm: master process
veyaphp-fpm: pool www
ifadelerinin bulunduğu satırları arayın. Proses yoksa, PHP-FPM başlatılmamış veya çökmüş demektir. ServBay UI ya daservbayctl
komutuyla 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.log
PHP hata kaydındaFatal error
,Parse error
,Warning
,Notice
gibi mesajlar arayın, özellikle ziyaret ettiğiniz betiğe ait olanları.display_errors
ayarının üretim ortamında kapalı, geliştirmede ise ayrıntıları görebilmek için geçici olarak açık olması önerilir (genelliklephp.ini
dosyasında düzenlenir).
- PHP:
Dosya ve Dizin İzinlerini Kontrol Edin: Web sunucusu genellikle sistemde
_www
gibi ö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.
chmod
vechown
ile izinleri güncelleyebilirsiniz; temkinli olun.
Spesifik Web Sunucularında 500 Hatası İçin Kontrol Noktaları
Caddy:
- FastCGI Yapılandırması: Caddyfile’daki
php_fastcgi
veyareverse_proxy
talimatının, PHP-FPM’in doğru adresine (127.0.0.1:9000
veyaunix:/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_proxy
ile 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_pass
Ayarı:nginx.conf
veya ilgili site yapılandırmasındakifastcgi_pass
komutunun 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_files
Talimatı:try_files
yapı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_rewrite
Modülü:.htaccess
ile URL yeniden yazma kullanıyorsanız, Apache’demod_rewrite
modülünün etkin olduğundan emin olun.- .htaccess Dosya İçeriği:
.htaccess
’deki hatalı bir komut doğrudan 500 hatasına neden olabilir. ÖzellikleRewriteRule
gibi satırların sözdizimini kontrol edin. AllowOverride
Ayarı: Apache ana konfigürasyon dosyasında ilgili dizininAllowOverride
parametresi (All
veya en azındanFileInfo
veLimit
olmalı).htaccess
komutları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 -all
2
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 -all
2
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 -v
Komutu ile Test Edin: Terminaldecurl -v your-website.servbay.demo
komutunu çalıştırın.-v
detaya inerek istek ve yanıt aşamalarını, başlıkları, SSL/TLS bağlantı detaylarını gösterir.your-website.servbay.demo
kı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.
localhost
veya IP haricinde) kullanıyorsanız/etc/hosts
ya da yerel DNS ayarlarınızı kontrol edin. Alan adınızın doğru şekilde127.0.0.1
veya::1
adresine 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.