Ana içeriğe geç

🚀 CentOS 8 Apache Kurulumu + Virtual Host + SELinux (Tüm Adımlar)

Bu rehberde CentOS 8 üzerinde Apache HTTPD kurulumunu, Virtual Host yapılandırmasını, güvenlik duvarı ayarlarını ve SELinux log izinlerini modern, SEO uyumlu ve tamamen temiz bir yapıda öğrenirsiniz.

Bu içerik:

  • 🟢 Google’da üst sıralara oynamak için optimize edilmiştir
  • 🟢 Her adım sade ama eksiksizdir
  • 🟢 Yeni başlayan – ileri seviye herkes için uygundur

📌 Gereksinimler

  • Sudo yetkili bir kullanıcı
  • CentOS 8 sunucusu
  • FirewallD etkin
  • Domain DNS yönlendirmeleri yapılmış

1️⃣ Apache Web Sunucusunu Kurma

CentOS 8, Apache’yi doğrudan resmi depolarında sunar.

sudo dnf install httpd -y

  • Kurulum tamamlanınca Apache servisini başlatın:

sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

Başarılı bir kurulumda:

  • Active: active (running) görünmelidir.

  • Tarayıcıdan test edin:

http://SUNUCU-IP

2️⃣ Firewall Ayarlarını Açma (HTTP + HTTPS)

  1. HTTP (80) Aç

sudo firewall-cmd --permanent --add-service=http

  1. HTTPS (443) Aç (SSL kullanacaksanız)

sudo firewall-cmd --permanent --add-service=https

  1. Kuralları Yeniden Yükleyin

sudo firewall-cmd --reload

3️⃣ Virtual Host (Sanal Host) Yapılandırması

Bu bölüm sunucuda birden fazla site barındırmak için gereklidir.

  • Aşağıdaki örnek domain: rabisu.cloud

İstersen kendi domainini yazıp kullan.


3.1. Site Dizinlerini Oluşturma


sudo mkdir -p /var/www/rabisu.cloud/html
sudo mkdir -p /var/www/rabisu.cloud/log

  1. Permissions:

sudo chown -R $USER:$USER /var/www/rabisu.cloud/html
sudo chmod -R 755 /var/www

3.2. Örnek index.html Dosyası


sudo vi /var/www/rabisu.cloud/html/index.html

3.2.1 İçerik:


<html>
<head>
<title>Rabisu Bulut Test Sayfası</title>
</head>
<body>
<h1>✔ Sanal Host Başarıyla Çalışıyor!</h1>
</body>
</html>

3.3. Apache Konfigürasyon Klasörlerinin Oluşturulması

Debian/Ubuntu’daki yapılandırmayı CentOS’a uygun şekilde kendimiz kuruyoruz:


sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

  1. Apache’ye bu dizinleri dahil et:

sudo vi /etc/httpd/conf/httpd.conf
  • En alta ekle:

IncludeOptional sites-enabled/*.conf

3.4. Virtual Host Dosyasını Oluştur


sudo vi /etc/httpd/sites-available/rabisu.cloud.conf
  • İçerik:

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

DocumentRoot /var/www/rabisu.cloud/html

ErrorLog /var/www/rabisu.cloud/log/error.log
CustomLog /var/www/rabisu.cloud/log/requests.log combined
</VirtualHost>

3.5. Virtual Host’u Etkinleştir


sudo ln -s /etc/httpd/sites-available/rabisu.cloud.conf /etc/httpd/sites-enabled/rabisu.cloud.conf

4️⃣ SELinux Log İzinlerini Düzenleme (Kesin Yapılmalı)

Eğer SELinux aktifse (varsayılan), Apache log dizinlerine yazamaz.

Bu yüzden doğru bağlamı eklemeliyiz.


4.1 Dizin Bazlı SELinux Ayarı (Önerilen)


sudo semanage fcontext -a -t httpd_log_t "/var/www/rabisu.cloud/log(/.*)?"
sudo restorecon -R -v /var/www/rabisu.cloud/log

4.2. Alternatif: Global Ayar (Daha Az Güvenli)


sudo setsebool -P httpd_unified 1

5️⃣ Apache’yi Yeniden Başlat ve Test Et


sudo systemctl restart httpd

  1. Logları kontrol et:

ls -lZ /var/www/rabisu.cloud/log
  • Tarayıcıdan siteyi kontrol edin:

http://rabisu.cloud

❓ SSS – Sıkça Sorulan Sorular

1**. Apache kurdum ama hala varsayılan sayfa geliyor?**

  • Virtual Host etkin değildir

  • Apache restart edilmemiştir

  • Domain yönlendirmesi yanlış olabilir


2. SELinux izin hatası alıyorum?

  • httpd_log_t bağlamı doğru uygulanmamıştır.

  • Yukarıdaki restorecon komutunu tekrar çalıştırın.


3. Neden yum yerine dnf?

  • CentOS 8 ile birlikte dnf, yum’un modern sürümüdür.

🎉 Sonuç

Bu rehberle:

✔ CentOS 8 üzerine Apache kurdun ✔ Güvenlik duvarını yapılandırdın ✔ Birden fazla site için Virtual Host kurdun ✔ SELinux log izinlerini düzelttin

Artık sunucun tam anlamıyla üretim için hazır. Web sitesi altyapınızı kurmanın ilk ve en önemli adımını attınız. İhtiyaç duyduğunuz tüm bulut bilişim hizmetlerini Rabisu Bulut platformunda hemen deneyebilirsiniz