Ana içeriğe geç

🛠️ Linux Web Sitesi Sorun Giderme Rehberi

Linux sunucularda çalışan web siteleri zaman zaman erişilemez hâle gelebilir, hatalar gösterebilir veya yanlış yapılandırmalar nedeniyle düzgün çalışmayabilir.
Bu rehberde, bir Linux sunucuda yaygın site problemlerini adım adım nasıl tespit edip çözebileceğinizi öğreneceksiniz.


📘 Bu Rehberde Ne Öğreneceksiniz?

  • Log dosyalarını kullanarak hatanın kaynağını bulmayı
  • Apache/Nginx servis durumunu doğrulamayı
  • Yapılandırma sözdizimi hatalarını tespit etmeyi
  • Port ve firewall engellerini çözmeyi
  • DNS yanlışlıklarını analiz etmeyi
  • DocumentRoot ve index dosyası problemlerini düzeltmeyi
  • Dosya izinleri ve sahiplik sorunlarını çözmeyi
  • Veritabanı çalışmıyorsa nasıl teşhis edeceğinizi

1. Log Dosyalarını İnceleyin (Her Zaman İlk Adım)

Sorunu rastgele aramak yerine log dosyalarına bakın.
Neredeyse tüm servisler loglarını /var/log altında saklar.

Apache logları

ls /var/log/apache2
  • Apache hata ve erişim loglarını listeler.

1. Nginx logları


ls /var/log/nginx
  • Nginx’e ait log dosyalarını gösterir.

2. Veritabanı logları

  • MySQL, PostgreSQL ve MongoDB logları da aynı dizindedir.

  • Loglarda geçen hatayı bir arama motorunda aramak çoğu zaman doğrudan çözüm verir.

2. Web Sunucusu Kurulu ve Çalışır Durumda mı?

2.1 – Sunucu kurulu mu?

1. Apache kurulumu (Ubuntu/Debian)


sudo apt update
sudo apt install apache2
  • Apache’yi yükler ve gerekli servis dosyalarını oluşturur.

2. Nginx kurulumu (Ubuntu/Debian)


sudo apt install nginx
  • Nginx web sunucusunu kurar.

3. Apache kurulumu (RHEL/Rocky/Fedora)


sudo dnf install httpd
  • RPM tabanlı dağıtımlarda Apache kurulumunu gerçekleştirir.

2.2 – Sunucu çalışıyor mu?

1. Portların dinlenip dinlenmediğini kontrol edin


sudo netstat -plunt | grep nginx
  • Nginx süreçlerinin 80/443 portunu dinleyip dinlemediğini gösterir.

2. Servisi başlatma


sudo systemctl start nginx
  • Nginx’i başlatır.

3. Servisin durumunu kontrol edin:


sudo systemctl status nginx
  • Hizmetin aktif olup olmadığını gösterir.

3. Yapılandırma Sözdizimini Doğrulayın (Syntax Test)

Yanlış syntax, web sunucusunun başlamasını engeller.

1. Apache yapılandırma testi


sudo apache2ctl configtest

-Apache yapılandırma dosyalarının sözdizimini test eder.

2. Nginx yapılandırma testi


sudo nginx -t
  • Nginx yapılandırmasını doğrular ve hata satırını bildirir.

En yaygın Nginx hatası: satır sonuna ; eklemeyi unutmak.

4. Portlar Açık mı? Firewall Sorunları

  • Web sitelerinin yayında olması için 80 ve 443 portlarının açık olması gerekir.

  • Port testi (harici makineden)


nc -z 192.168.1.10 80
  • Port 80’e erişim olup olmadığını kontrol eder.

Erişim yoksa → UFW, iptables veya bulut güvenlik grupları engelliyor olabilir.


5. DNS Ayarları Doğru mu?

  • Alan adınız doğru IP adresine yönlenmiyorsa site açılmaz.

1. DNS A kaydı kontrolü


host -t A rabisu.cloud

2. Domain'in IPv4 adresini gösterir.

3. AAAA kaydı (IPv6)


host -t AAAA rabisu.cloud
  • Domain'in IPv6 adresini gösterir.

DNS değişiklikleri genelde 30–60 dakikada yayılır.


6. Virtual Host / Server Block Ayarları Doğru mu?

  • DNS doğru olsa bile web sunucusu domain isteğine cevap vermeyebilir.

1. Apache örneği


<VirtualHost *:80>
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud
DocumentRoot /var/www/rabisu.cloud
</VirtualHost>

  • Sitenin dosyalarının hangi dizinden okunacağını belirler.

  • Nginx örneği


server {
listen 80;
server_name rabisu.cloud www.rabisu.cloud;
root /var/www/rabisu.cloud;
}
  • Sunucunun hangi domainlere cevap vereceğini tanımlar.

7. DocumentRoot / Root Dizini Doğru mu?

  • Yanlış dosya dizini → site boş görünür veya hata verir.

1. Apache:


DocumentRoot /var/www/rabisu.cloud
  • Neyi nereden okuyacağını belirler.

2. Nginx:


root /var/www/rabisu.cloud;
  • Ana dizini tanımlar.

8. İndeks Dosyası Sorunları

  • index.html / index.php bulunmuyorsa sunucu dizin listelemeye çalışabilir.

1. Apache:


DirectoryIndex index.html index.php
  • Apache hangi dosyayı önce arayacağını belirtir.

2. Nginx:


index index.html index.htm;
  • Nginx'in varsayılan indeks dosyası listesidir.

9. Dosya İzinleri ve Sahiplik Problemleri

  • Yanlış izinler → 403 Forbidden, boş sayfa veya dosya okunamıyor hatası.

1. Dosya izinlerini kontrol edin


ls -l /var/www/rabisu.cloud
  • Dosyaların kullanıcı ve grup izinlerini gösterir.

2. Sahipliği düzeltin


sudo chown -R www-data:www-data /var/www/rabisu.cloud
  • Web sunucusunun içerikleri okuyabilmesini sağlar.

10. Erişim Kısıtlamalarını Kontrol Edin

1. Apache erişim engeli örneği


Require all denied
  • Bu dizine erişimi tamamen kapatır.

2. Nginx erişim engeli örneği


deny all;

İstenen dizine erişimi engeller.

  • Yanlış yerleştirilirse → sitenin tamamı kapanabilir.

10.1 Veritabanı Servisi Çalışıyor mu?

  • Siteniz MySQL, PostgreSQL vb. kullanıyorsa veritabanının çalışması gerekir.

1. MySQL kontrolü


sudo netstat -plunt | grep mysql
  • MySQL'in portu dinleyip dinlemediğini gösterir.

10.2 Site Veritabanına Bağlanabiliyor mu?

  • Bağlantı bilgileri yanlışsa site hata verir.

1. Manuel bağlantı testi


mysql -u DB_USER -pDB_PASS DB_NAME

Veritabanı bilgilerinin doğru olup olmadığını kontrol etmenizi sağlar.

  • Bağlanamıyorsanız → şifre, kullanıcı izinleri veya host problemi vardır.

❓ Sıkça Sorulan Sorular (SSS)

1. Web sitem açılmıyor ama sunucu çalışıyor. Neden? Belge kökü hatalı olabilir, DNS yanlış olabilir veya firewall portları engelliyordur.

2. Apache/Nginx çalışıyor ama sayfa beyaz. Çözüm? Log dosyalarına bakın. Genelde PHP hatalarından kaynaklanır.

3. IP ile site açılıyor ama domain çalışmıyor. Sebep? Virtual Host/Server Block yanlış yapılandırılmış olabilir.

4. Dosya izinleri neden bu kadar kritik? Web sunucusu dosyaları okuyamazsa sayfa boş veya 403 hatalı görünür.

5. DNS değişiklikleri neden hemen güncellenmiyor? DNS yayılımı globaldir ve zaman alır. Genelde 30–60 dakika sürer.


🏁 Sonuç

Bu rehberde, Linux tabanlı bir sunucuda web sitesi sorunlarını sistematik ve hızlı bir şekilde çözmek için gereken tüm adımları öğrendiniz. Log analizi, yapılandırma doğrulama, DNS kontrolü, izin yönetimi ve veritabanı sorunları dahil birçok problemi artık kendi başınıza çözebilirsiniz.

Kesintisiz ve performanslı web projeleri için Rabisu Bulut altyapısını güvenle kullanabilirsiniz. 🚀