Ubuntu ve Debian için Apache Yapılandırması
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 yapılandırma dosyası
ports.conf → Port tanımları
sites-available/ → Sanal host taslakları
sites-enabled/ → Aktif sanal hostlar
mods-available/ / mods-enabled/ → Apache modülleri
conf-available/ / conf-enabled/ → Ek konfigürasyon dosyaları
Apache, tek bir monolit yapılandırma dosyası yerine modüler bir mimari kullanır.
2. apache2.conf Dosyasını İncelemek
Ana yapılandırma dosyasını açın:
sudo nano /etc/apache2/apache2.conf
Bu dosya aşağıdaki ayarları içerir:
Global Apache ayarları
Modüllerin yüklenme kuralları
VirtualHost yapılandırmalarının dahil edilmesi
Örnek yapılandırma
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Bu yapı Apache’nin tüm konfigürasyon dosyalarını dinamik olarak yüklemesini sağlar.
3. Global Apache Ayarlarını Düzenlemek
Timeout
Varsayılan değer:
Timeout 300
Çoğu sistemde 30–60 saniye arası daha uygundur.
KeepAlive
KeepAlive açık olduğunda tek bağlantı üzerinden birden fazla HTTP isteği işlenebilir.
KeepAlive On
MaxKeepAliveRequests
Varsayılan:
MaxKeepAliveRequests 100
0 değeri sınırsız anlamına gelir.
KeepAliveTimeout
Sunucunun yeni isteği bekleyeceği süre.
KeepAliveTimeout 5
MPM (Multi-Processing Module) Türünü Kontrol Etme
a2query -M
Örnek çıktı:
event
MPM modülü Apache’nin bağlantıları nasıl yönettiğini belirler.
4. Virtual Host (Sanal Host) Yapılandırması
Varsayılan host dosyasını açın:
sudo nano /etc/apache2/sites-available/000-default.conf
Örnek VirtualHost:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
4.1 Kendi Alan Adınız İçin Virtual Host Oluşturma
Yeni bir VirtualHost oluşturun:
sudo nano /etc/apache2/sites-available/rabisu.cloud.conf
Örnek yapılandırma:
<VirtualHost *:80>
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud
DocumentRoot /var/www/rabisu.cloud/public_html
</VirtualHost>
5. Dizin Kuralları (Directory)
apache2.conf içinde örnek bir dizin yapılandırması:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Bu blok dizin erişim izinlerini belirler.
Alias ve ScriptAlias
Alias
Statik bir dizini farklı bir URL altında yayınlamak için kullanılır.
Alias "/icerik/" "/usr/local/apache/icerik/"
ScriptAlias
CGI scriptlerinin çalıştırılacağı dizini belirtir.
ScriptAlias "/cgi-bin/" "/usr/lib/cgi-bin/"
6. Siteleri ve Modülleri Etkinleştirme
Siteyi aktif etmek:
sudo a2ensite rabisu.cloud.conf
Siteyi devre dışı bırakmak:
sudo a2dissite 000-default
Modül etkinleştirmek:
sudo a2enmod rewrite
Modül devre dışı bırakmak:
sudo a2dismod rewrite
Apache’yi yeniden başlatmak:
sudo systemctl restart apache2
Bu komut yapılan değişiklikleri uygular.
Sıkça Sorulan Sorular (SSS)
a2ensite ne işe yarar?
Bir VirtualHost yapılandırma dosyasını aktif hale getirir.
AllowOverride None ne demektir?
.htaccess dosyalarının yapılandırmayı değiştirmesini engeller.
Apache MPM neden önemlidir?
Sunucunun eş zamanlı bağlantıları nasıl yöneteceğini belirler ve performansı doğrudan etkiler.
Neden bir sunucuda birden fazla Virtual Host olur?
Tek bir IP adresi ile birden fazla web sitesi barındırmak için.
Alias ve ScriptAlias arasındaki fark nedir? Alias statik dosyaları yönlendirir ScriptAlias çalıştırılabilir CGI scriptleri için kullanılır
Sonuç
Bu rehber ile 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 edebilir ve farklı web sitelerini tek bir sunucuda kolayca barındırabilirsiniz.
Bu yapılandırmaları Rabisu Bulut platformunda test ederek projeleriniz için yüksek performans elde edebilirsiniz.