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
sudoyetkisine sahip kullanıcıfirewalldservisinin 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.