Ana içeriğe geç

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.