Ana içeriğe geç

CentOS 8 Üzerinde Apache Kurulumu

Bu rehberde CentOS 8 üzerinde Apache HTTP Server (httpd) kurulumunu, firewalld yapılandırmasını, Virtual Host ayarlarını ve SELinux izinlerini adım adım öğreneceksiniz.

Bu yapılandırma sayesinde tek bir sunucuda birden fazla web sitesini güvenli şekilde barındırabilirsiniz.


Ön Gereksinimler

  • CentOS 8 sunucu
  • sudo yetkisine sahip kullanıcı
  • firewalld servisinin aktif olması
  • Alan adının sunucu IP adresine yönlendirilmiş olması

Apache Web Sunucusunu Kurma

CentOS 8 üzerinde Apache paketi httpd adıyla dağıtılır.

sudo dnf install httpd -y

Kurulum tamamlandıktan sonra Apache servisini başlatın:

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

Servis durumu aşağıdaki gibi görünmelidir:

Active: active (running)

Tarayıcıdan test edin:

http://SUNUCU-IP

Apache varsayılan test sayfası görüntüleniyorsa kurulum başarılıdır.

Firewall Ayarlarını Açma (HTTP ve HTTPS)

Web trafiğinin sunucuya ulaşabilmesi için firewall kurallarını açmanız gerekir.

HTTP erişimini açma:

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

HTTPS erişimini açma:

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

Kuralları yeniden yükleme:

sudo firewall-cmd --reload

Virtual Host Yapılandırması

Virtual Host sayesinde aynı sunucuda birden fazla alan adı barındırabilirsiniz.

Örnek alan adı:

rabisu.cloud

3.1 Site Dizinlerini Oluşturma

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

Dizin sahipliğini ve izinlerini düzenleyin:

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

3.2 Test Sayfası Oluşturma

sudo vi /var/www/rabisu.cloud/html/index.html
<html>
<head>
<title>Rabisu Test Sayfası</title>
</head>
<body>
<h1>Virtual Host başarıyla çalışıyor</h1>
</body>
</html>

Apache Virtual Host Yapılandırması

CentOS sistemlerinde Virtual Host klasörleri varsayılan olarak bulunmaz. Bu nedenle Debian/Ubuntu benzeri bir yapı oluşturacağız.

Konfigürasyon dizinlerini oluşturma:

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

Apache ana yapılandırma dosyasını düzenleme:

sudo vi /etc/httpd/conf/httpd.conf

Dosyanın sonuna şu satırı ekleyin:

IncludeOptional sites-enabled/*.conf

4.1 Virtual Host Dosyasını Oluşturma

sudo vi /etc/httpd/sites-available/rabisu.cloud.conf
<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>

4.2 Virtual Host'u Etkinleştirme

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

SELinux Log İzinlerini Düzenleme

SELinux aktif olduğunda Apache bazı dizinlere yazamaz. Bu nedenle doğru bağlamları tanımlamak gerekir.

Log dizini için SELinux bağlamı:

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

Alternatif (Daha Az Güvenli)

sudo setsebool -P httpd_unified 1

Bu yöntem tüm httpd yazma işlemlerini izinli hale getirir.

Apache'yi Yeniden Başlatma

Yapılandırma tamamlandıktan sonra Apache servisini yeniden başlatın.

sudo systemctl restart httpd

Logların oluştuğunu kontrol edin:

ls -lZ /var/www/rabisu.cloud/log

Ardından tarayıcıdan test edin:

http://rabisu.cloud

Sıkça Sorulan Sorular

Apache kurdum ama varsayılan sayfa geliyor.

Virtual Host etkin olmayabilir Apache yeniden başlatılmamış olabilir DNS yönlendirmesi yanlış olabilir

SELinux izin hatası alıyorum.

httpd_log_t bağlamı uygulanmamış olabilir restorecon komutunu tekrar çalıştırın

Neden yum yerine dnf kullanılıyor?

CentOS 8 ile birlikte dnf, yum paket yöneticisinin geliştirilmiş sürümü olarak kullanılmaktadır.

Sonuç

Bu rehberde:

  • CentOS 8 üzerine Apache kuruldu
  • Firewall yapılandırıldı
  • Virtual Host oluşturuldu
  • SELinux log izinleri düzenlendi

Artık sunucunuz birden fazla web sitesini barındırabilecek şekilde yapılandırılmıştır.

Bulut sunucular üzerinde bu tür yapılandırmaları hızlı şekilde test etmek için Rabisu Bulut platformunu kullanabilirsiniz.