Ana içeriğe geç

Apache Kurulumu: CentOS 7 Üzerinde Virtual Host ve SELinux Ayarları

Bu rehberde CentOS 7 üzerinde Apache (httpd) web sunucusunu kurmayı öğreneceksiniz.
Ayrıca Virtual Host ve SELinux izinleri ile aynı sunucuda birden fazla alan adını güvenli şekilde yöneteceksiniz.


Bu Rehberde Ne Öğreneceksiniz?

  • CentOS 7 üzerinde Apache kurulumu
  • Firewalld ile HTTP/HTTPS erişimi açma
  • Apache servis yönetimi
  • Virtual Host yapılandırması
  • SELinux log izinlerini doğru ayarlama

Ön Koşullar

  • CentOS 7 kurulu bir Rabisu Bulut sunucusu
  • sudo yetkisine sahip kullanıcı
  • Alan adı sunucu IP’sine yönlendirilmiş olmalı
  • firewalld aktif olmalı

1. Apache Kurulumu ve Firewall Ayarları

Apache, CentOS depolarında httpd paketi olarak bulunur.

sudo yum update httpd
  • Bu komut Apache paket bilgisini günceller.

sudo yum install httpd
  • Bu komut Apache web sunucusunu kurar.

1. Firewalld Ayarları


sudo firewall-cmd --permanent --add-service=http
  • HTTP trafiğini açar (80).

sudo firewall-cmd --permanent --add-service=https
  • HTTPS trafiğini açar (443).

sudo firewall-cmd --reload
  • Firewall kurallarını uygular.

2. Apache Servisini Başlatma ve Kontrol


sudo systemctl start httpd
  • Apache servisini başlatır.

sudo systemctl status httpd
  • Servisin çalıştığını doğrular.

1. Tarayıcıdan test edin:


http://SUNUCU_IP

2. Apache Servisini Yönetme


sudo systemctl stop httpd
  • Servisi durdurur.


sudo systemctl restart httpd
  • Servisi yeniden başlatır.

sudo systemctl reload httpd
  • Yapılandırmayı bağlantıları kesmeden yeniler.

sudo systemctl enable httpd
  • Sunucu açılışında otomatik başlatır.

3. Virtual Host Yapılandırması

Örnek alan adı: rabisuproje.cloud

  1. Dizin Yapısını Oluşturma

sudo mkdir -p /var/www/rabisuproje.cloud/html
sudo mkdir -p /var/www/rabisuproje.cloud/log
  • Site kök ve log dizinlerini oluşturur.

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

Doğru sahiplik ve izinleri ayarlar.


  • Test Dosyası

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

<html>
<head>
<title>rabisuproje.cloud</title>
</head>
<body>
<h1>Başarılı! Virtual Host çalışıyor.</h1>
</body>
</html>

5. Virtual Host Dosyasını Oluşturma


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

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

1. Dosyanın sonuna ekleyin:


IncludeOptional sites-enabled/*.conf

2. Virtual Host dosyası:


sudo vi /etc/httpd/sites-available/rabisuproje.cloud.conf


<VirtualHost *:80>
ServerName rabisuproje.cloud
ServerAlias www.rabisuproje.cloud
DocumentRoot /var/www/rabisuproje.cloud/html
ErrorLog /var/www/rabisuproje.cloud/log/error.log
CustomLog /var/www/rabisuproje.cloud/log/access.log combined
</VirtualHost>
  • Etkinleştirin:

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

6. SELinux İzinlerini Ayarlama (Önerilir)

SELinux, Apache’nin özel dizinlere yazmasını engeller.

  • Log dizini için izin tanımlayalım.

sudo semanage fcontext -a -t httpd_log_t "/var/www/rabisuproje.cloud/log(/.*)?"

Apache’nin log yazmasına izin verir.


sudo restorecon -R -v /var/www/rabisuproje.cloud/log

SELinux değişikliklerini uygular.


7. Yapılandırmayı Test Etme


sudo systemctl restart httpd

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

Log dosyaları oluştuysa işlem başarılıdır.

  • Tarayıcıdan test edin:

http://rabisuproje.cloud

Sıkça Sorulan Sorular (SSS)

1. Apache neden httpd diye geçiyor? Tarihsel olarak HTTP Daemon kısaltması kullanılır.

2. SELinux kapatılmalı mı? Hayır. Doğru bağlam verilmeli.

3. Virtual Host ne sağlar? Tek sunucuda birden fazla site barındırmayı sağlar.

4. Loglar nerede tutulur? /var/www/siteadi/log/ dizininde.


Sonuç

Apache artık kurulu, güvenli ve çoklu site destekli. CentOS 7 üzerinde production kullanıma hazırsınız.

🚀Rabisu Bulut ile projelerinizi hemen yayına alın.