Sunucu yönetiminde en değerli beceri komut ezberlemek değil, hatanın nerede olduğunu bulabilmektir. "Site açılmıyor" cümlesinin arkasında onlarca farklı sebep olabilir; doğru loga bakan kişi bunu beş dakikada, bakmayan kişi üç saatte çözer.
Bu rehber bir referans konusudur. Kaydedin, bir sorun çıktığında dönüp bakın.
Örneklerde kullanıcı adı
1. Log dosyaları haritası
Neye bakacağını bilmek yarı çözümdür:
Temel log komutları
En etkili yöntem:
2. Hızlı teşhis akışı
Bir sorunla karşılaştığında sırayla şunları çalıştır:
Bu beş komut sorunların büyük kısmını daha ilk adımda ortaya çıkarır.
3. HTTP hata kodlarına göre çözüm
403 Forbidden
Dosya izinleri ya da sahiplik bozuk.
404 Not Found (iç sayfalarda)
Yönlendirme kuralları eksik. Apache kullanıyorsan
500 Internal Server Error
Genel PHP hatası. Gerçek sebebi log söyler:
En yaygın sebepler: bozuk
502 Bad Gateway
PHP-FPM cevap vermiyor.
Logda
504 Gateway Timeout
İşlem çok uzun sürüyor. Süre limitlerini artır:
Nginx tarafında:
Ama asıl soruyu sor: neden bu kadar uzun sürüyor? Genelde optimize edilmemiş bir veritabanı sorgusudur.
413 Request Entity Too Large
Ayrıca PHP tarafında
4. Panel sorunları
Panel hiç açılmıyor
Port dinleniyor ama açılmıyorsa sağlayıcının kendi firewall'una bak.
Panel şifresini unuttum
Panelde SSL hatası
Panel açılıyor ama değişiklikler uygulanmıyor
5. Kaynak sorunları
Disk doldu
En çok yer kaplayanları bul:
Sık suçlular: eski yedekler, şişmiş log dosyaları, mail kuyruğu.
Bellek bitiyor / servisler kendiliğinden kapanıyor
OOM killer devreye girmiş olabilir:
Çözüm: PHP-FPM
CPU sürekli %100
Suçlu PHP ise hangi domainden geldiğini access loglarından bul. Bir bot saldırısı olabilir:
Tek IP'den anormal istek varsa engelle:
6. SSL sorunları
Let's Encrypt sertifikası alınamıyor
Sırayla kontrol et:
Sertifika var ama tarayıcı uyarı veriyor
Sertifika otomatik yenilenmiyor
Cron satırı yoksa panelden domaini yeniden kaydet.
7. Veritabanı sorunları
MariaDB başlamıyor
En sık sebep:
"Too many connections"
Ama önce sorunun kaynağına bak — genelde kapatılmayan bağlantılar ya da yavaş sorgulardır.
Tablolar bozuldu
8. Mail sorunları
Mail kuyruğunu kontrol et
Belirli bir mailin akıbetini izle
Kuyruğu zorla gönder
Kuyrukta binlerce mail birikmiş
Bu ciddi bir uyarıdır — sitelerinden biri spam gönderiyor olabilir. Kaynağı bul:
Kaynağı bulmadan kuyruğu boşaltma, sorun devam eder.
9. Genel kurtarma komutları
Bir şeyler karıştıysa yapılandırmayı yeniden oluşturmak çoğu zaman çözer:
Tüm servisleri yeniden başlat:
10. Yardım isterken ne paylaşmalısın?
"Site açılmıyor" yazan bir mesaja kimse yardım edemez. Şunları paylaş:
Logu paylaşırken IP adreslerini, şifreleri ve alan adı bilgilerini maskelemeyi unutma.
Bu konu bir arşiv niteliğinde; karşılaştığınız hataları ve çözümlerini altına yazarsanız herkes için değerli bir kaynak hâline gelir.
Serinin sonraki konusunda HestiaCP'de Cloudflare entegrasyonu ve DNS yönetimi ile devam edeceğim.
Bu rehber bir referans konusudur. Kaydedin, bir sorun çıktığında dönüp bakın.
Örneklerde kullanıcı adı
oblifex.1. Log dosyaları haritası
Neye bakacağını bilmek yarı çözümdür:
| Sorun | Bakılacak dosya |
|---|---|
| Site hata veriyor | /home/oblifex/web/DOMAIN/logs/error.log |
| Ziyaretçi trafiği | /home/oblifex/web/DOMAIN/logs/access.log |
| Nginx genel | /var/log/nginx/error.log |
| Apache genel | /var/log/apache2/error.log |
| PHP hataları | /var/log/php8.3-fpm.log |
| Veritabanı | /var/log/mysql/error.log |
/var/log/exim4/mainlog | |
| Panel işlemleri | /usr/local/hestia/log/system.log |
| Panel girişleri | /usr/local/hestia/log/auth.log |
| Yedekleme | /usr/local/hestia/log/backup.log |
| SSH girişleri | /var/log/auth.log |
Temel log komutları
Kod:
tail -50 DOSYA son 50 satir
tail -f DOSYA canli izle
grep "error" DOSYA hata satirlarini sec
grep -i "kelime" DOSYA buyuk-kucuk harf duyarsiz ara
journalctl -u nginx -n 50 servis loglari
En etkili yöntem:
tail -f ile logu canlı izlerken tarayıcıdan siteyi yenile. Hatanın oluştuğu anı gözünle görürsün.2. Hızlı teşhis akışı
Bir sorunla karşılaştığında sırayla şunları çalıştır:
Kod:
v-list-sys-services servisler ayakta mi
df -h disk dolu mu
free -h bellek bitti mi
nginx -t nginx ayar hatasi var mi
systemctl status php8.3-fpm php calisiyor mu
tail -30 /home/oblifex/web/DOMAIN/logs/error.log
Bu beş komut sorunların büyük kısmını daha ilk adımda ortaya çıkarır.
3. HTTP hata kodlarına göre çözüm
403 Forbidden
Dosya izinleri ya da sahiplik bozuk.
Kod:
chown -R oblifex:oblifex /home/oblifex/web/DOMAIN/public_html
find /home/oblifex/web/DOMAIN/public_html -type d -exec chmod 755 {} \;
find /home/oblifex/web/DOMAIN/public_html -type f -exec chmod 644 {} \;
v-rebuild-web-domains oblifex
index.php Veya index.html dosyasının var olduğundan da emin ol.404 Not Found (iç sayfalarda)
Yönlendirme kuralları eksik. Apache kullanıyorsan
.htaccess dosyası kopyalanmamıştır. Sadece Nginx kullanıyorsan proxy template'ini yazılıma uygun olanla değiştir:
Kod:
v-change-web-domain-proxy-tpl oblifex oblifex.com wordpress
500 Internal Server Error
Genel PHP hatası. Gerçek sebebi log söyler:
Kod:
tail -30 /home/oblifex/web/DOMAIN/logs/error.log
.htaccess, eksik PHP eklentisi, yetersiz bellek limiti.502 Bad Gateway
PHP-FPM cevap vermiyor.
Kod:
systemctl status php8.3-fpm
systemctl restart php8.3-fpm
tail -30 /var/log/php8.3-fpm.log
max_children uyarısı varsa havuz doludur, değeri artır.504 Gateway Timeout
İşlem çok uzun sürüyor. Süre limitlerini artır:
Kod:
php_admin_value[max_execution_time] = 300
Kod:
fastcgi_read_timeout 300;
413 Request Entity Too Large
Kod:
client_max_body_size 128M;
upload_max_filesize ve post_max_size değerlerini de artır.4. Panel sorunları
Panel hiç açılmıyor
Kod:
systemctl status hestia
systemctl restart hestia
netstat -tlnp | grep 2083
Panel şifresini unuttum
Kod:
v-change-user-password admin YENI_SIFRE
Panelde SSL hatası
Kod:
v-add-letsencrypt-host
Panel açılıyor ama değişiklikler uygulanmıyor
Kod:
tail -50 /usr/local/hestia/log/system.log
v-rebuild-user oblifex
5. Kaynak sorunları
Disk doldu
En çok yer kaplayanları bul:
Kod:
df -h
du -h --max-depth=2 /home | sort -hr | head -20
du -h --max-depth=1 /var/log | sort -hr | head
Kod:
journalctl --vacuum-time=7d
apt clean
find /backup -name "*.tar" -mtime +14 -delete
Bellek bitiyor / servisler kendiliğinden kapanıyor
OOM killer devreye girmiş olabilir:
Kod:
grep -i "out of memory" /var/log/syslog
dmesg | grep -i "killed process"
max_children ve MySQL innodb_buffer_pool_size değerlerini düşür. Geçici çözüm olarak swap ekleyebilirsin:
Kod:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
CPU sürekli %100
Kod:
htop
ps aux --sort=-%cpu | head -10
Kod:
awk '{print $1}' /home/oblifex/web/DOMAIN/logs/access.log | sort | uniq -c | sort -rn | head -20
Kod:
v-add-firewall-rule DROP 1.2.3.4 0 TCP KOTU-BOT
6. SSL sorunları
Let's Encrypt sertifikası alınamıyor
Sırayla kontrol et:
- Domainin A kaydı sunucu IP'sini gösteriyor mu:
dig +short oblifex.com - Cloudflare proxy açık mı — sertifika alırken gri buluta çek
- 80. port açık mı — doğrulama bu porttan yapılır
.well-knownDizinine erişim engelleniyor mu
Kod:
tail -30 /usr/local/hestia/log/system.log
Sertifika var ama tarayıcı uyarı veriyor
www Versiyonu sertifikaya dahil edilmemiştir:
Kod:
v-add-letsencrypt-domain oblifex oblifex.com 'www.oblifex.com'
Sertifika otomatik yenilenmiyor
Kod:
crontab -l | grep letsencrypt
7. Veritabanı sorunları
MariaDB başlamıyor
Kod:
systemctl status mariadb
journalctl -u mariadb -n 50
tail -50 /var/log/mysql/error.log
innodb_buffer_pool_size değeri mevcut RAM'den büyük. Değeri düşür ve tekrar dene."Too many connections"
Kod:
max_connections = 200
Tablolar bozuldu
Kod:
mysqlcheck -u root -p --auto-repair --check --all-databases
8. Mail sorunları
Mail kuyruğunu kontrol et
Kod:
exim -bp
exim -bpc
Belirli bir mailin akıbetini izle
Kod:
grep "[email protected]" /var/log/exim4/mainlog | tail -20
Kuyruğu zorla gönder
Kod:
exim -qff
Kuyrukta binlerce mail birikmiş
Bu ciddi bir uyarıdır — sitelerinden biri spam gönderiyor olabilir. Kaynağı bul:
Kod:
exim -bp | grep "<" | awk '{print $4}' | sort | uniq -c | sort -rn | head
9. Genel kurtarma komutları
Bir şeyler karıştıysa yapılandırmayı yeniden oluşturmak çoğu zaman çözer:
Kod:
v-rebuild-user oblifex
v-rebuild-web-domains oblifex
v-rebuild-dns-domains oblifex
v-rebuild-mail-domains oblifex
v-rebuild-databases oblifex
Tüm servisleri yeniden başlat:
Kod:
systemctl restart nginx apache2 php8.3-fpm mariadb exim4 hestia
10. Yardım isterken ne paylaşmalısın?
"Site açılmıyor" yazan bir mesaja kimse yardım edemez. Şunları paylaş:
- Tam hata mesajı (ekran görüntüsü değil, metin olarak)
- İlgili log dosyasının son 30 satırı
- Sorun ne zaman başladı, öncesinde ne değiştirdin
- İşletim sistemi ve HestiaCP sürümü:
v-list-sys-info - Denediğin ve işe yaramayan çözümler
Logu paylaşırken IP adreslerini, şifreleri ve alan adı bilgilerini maskelemeyi unutma.
Bu konu bir arşiv niteliğinde; karşılaştığınız hataları ve çözümlerini altına yazarsanız herkes için değerli bir kaynak hâline gelir.
Serinin sonraki konusunda HestiaCP'de Cloudflare entegrasyonu ve DNS yönetimi ile devam edeceğim.