⚙️ Apache Yapılandırması – Ubuntu & Debian VPS Üzerinde Adım Adım Rehber
Apache, internet üzerindeki web sitelerinin yarısından fazlasını çalıştıran güçlü ve modüler bir web sunucusudur. Bu rehberde Apache’nin dosya hiyerarşisini, global ayarlarını, sanal host yapılandırmalarını ve modül yönetimini adım adım öğreneceksiniz.
🧠 Bu Rehberde Ne Öğreneceksiniz?
- Apache dosya yapısının nasıl çalıştığını
- Global ayarları nasıl optimize edeceğinizi
- Virtual Host oluşturmayı ve yönetmeyi
- Modülleri etkinleştirme / devre dışı bırakmayı
- Apache'yi kendi projeleriniz için nasıl özelleştireceğinizi
1. Apache Dosya Yapısını Tanımak
Apache yapılandırma dosyalarını /etc/apache2/ dizininde tutar.
Listelemek için:
ls -f /etc/apache2
Bu komut Apache yapılandırma klasörünü listeler.
1.1 Önemli dizinler:
-
apache2.conf → Ana global dosya
-
ports.conf → Port tanımları
-
sites-available/ → Sanal host taslakları
-
sites-enabled/ → Aktif sanal hostlar
-
mods-available/ / mods-enabled/ → Modüller
-
conf-available/ / conf-enabled/ → Ek konfigürasyonlar
-
Apache, bir monolit dosya yerine modüler tasarım kullanır.
1.2 apache2.conf Dosyasını İncelemek
1. Dosyayı açın:
sudo nano /etc/apache2/apache2.conf
Bu komut ana yapılandırma dosyasını açar.
- Bu dosya:
-
Global ayarları
-
modüllerin yüklenme kurallarını
-
Virtual Host’ların Include edildiği satırları
içerir.
- Örnek:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Bu yapı Apache’nin her klasörden konfigürasyonu dinamik olarak toplamasını sağlar.
3. Global Apache Ayarlarını Düzenlemek
3.1 Timeout
1. Varsayılan değer: 300 saniye
- Genelde 30–60 yapılır.
2. KeepAlive
-Açık olursa tek bağlantı üzerinden birden fazla istek işlenir.
3.2 MaxKeepAliveRequests
- Varsayılan: 100
0 verilirse sınırsız olur.
3.3 KeepAliveTimeout
- Yeni isteği bekleyeceği süredir. Varsayılan: 5.
3.4 🔧 MPM (Multi-Processing Module) Türünü Kontrol Etme
a2query -M
Bu komut Apache’nin hangi MPM türünü kullandığını gösterir.
- Örnek çıktı: event
4. Virtual Host (Sanal Host) Yapılandırması
- Varsayılan host:
sudo nano /etc/apache2/sites-available/000-default.conf
- Örnek:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
4.1 ✔ Kendi Alan Adınız İçin Virtual Host Oluşturma
sudo nano /etc/apache2/sites-available/rabisu.cloud.conf
- Örnek yapı:
<VirtualHost *:80>
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud
DocumentRoot /var/www/rabisu.cloud/public_html
</VirtualHost>
4.2 📁 Dizin Kuralları (Directory)
1. apache2.conf içinde:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Bu blok dizin erişim izinlerini belirler.
2. Alias ve ScriptAlias
- Alias örneği:
Alias "/icerik/" "/usr/local/apache/icerik/"
3. ScriptAlias:
ScriptAlias "/cgi-bin/" "/usr/lib/cgi-bin/"
5. Siteleri ve Modülleri Etkinleştirme
1. Siteyi aktif etmek:
sudo a2ensite rabisu.cloud.conf
2. Devre dışı bırakmak:
sudo a2dissite 000-default
3. Modül etkinleştirmek:
sudo a2enmod rewrite
4. Modül devre dışı bırakmak:
sudo a2dismod rewrite
5. Apache’yi yeniden başlatın:
sudo systemctl restart apache2
Bu komut değişiklikleri uygular.
❓ Sıkça Sorulan Sorular (SSS)
1. a2ensite ne işe yarar? Sanal host dosyasını aktif eder.
2. AllowOverride None ne demektir? .htaccess dosyasının ayarları geçersiz kılmasını engeller.
3. Apache MPM'i neden önemlidir? Bağlantıların nasıl yönetileceğini belirler, performansı etkiler.
4. Bir sunucuda neden çoklu Virtual Host olur? Tek IP ile birden fazla site barındırmak için.
5. Alias ve ScriptAlias farkı nedir? Alias statik dizini, ScriptAlias çalıştırılabilir CGI dizinini yönlendirir.
🎯 Sonuç
Bu rehberle Apache’nin modüler mimarisini, dosya yapısını, global ayarlarını ve sanal host yönetimini öğrendiniz. Artık Apache'yi kendi projelerinize göre optimize edebilirsiniz.
Bu gelişmiş yapılandırmaları Rabisu Bulut platformunda test ederek maksimum performans elde edebilirsiniz. 🚀