FibaCloud
İçeriğe geç
Soru sor

Kapatmak için ESC tuşuna basın

Ubuntu 24.04 Üzerinde Apache Web Sunucusu Kurulumu

Apache HTTP Server, alan adına göre farklı siteleri sunabilen açık kaynaklı bir web sunucusudur. Bu rehber Ubuntu 24.04 LTS ve dağıtımın Apache 2.4 paketi için tek bir sanal sunucu oluşturur. CentOS/RHEL komutlarıyla karıştırılmaz: a2ensite, www-data ve APACHE_LOG_DIR bu Ubuntu akışına aittir.

Sanal sunucu seçimi nasıl çalışır?
Sanal sunucu seçimi nasıl çalışır? Apache, bağlantının adresi/portu ve istenen alan adına göre sanal sunucuyu seçer. HTTPS’te SNI sertifika seçimine katılır; eşleşmeyen adlar varsayılan sanal sunucuya düşebilir.
Görselin adım adım açıklaması
  1. Karşıla: Bağlantının adres ve portunu belirle.
  2. Eşleştir: Host ve HTTPS için SNI bilgisini kullan.
  3. Yönlendir: Uygun VirtualHost yapılandırmasını seç.
  4. Kontrol et: Varsayılan siteyi de test et.

Ön koşullar ve kapsam

Yeni veya ayrı bir test sunucusu, sudo yetkili kullanıcı ve üretim için size ait bir alan adı gerekir. Örneklerdeki site.example.com adını kullanacağınız gerçek adla tutarlı biçimde değiştirin. Mevcut Nginx, Apache, panel veya konteyner sunucusunun üzerine kurulum yapmayın. Önce portları ve mevcut yapılandırmayı inceleyin:

cat /etc/os-release
sudo ss -ltnp '( sport = :80 or sport = :443 )'

Bu yazıdaki sanal sunucu ve yanıt kontrolleri ayrı ortamda doğrulanmalıdır. Paket kurulumu, sistem servisi ve kamuya açık TLS sertifikası kendi sunucunuzda ayrıca kabul gerektirir; komutların verilmesi tam ortam testi yapıldığı anlamına gelmez.

1. Apache paketini kurun

sudo apt update
sudo apt install apache2
apache2 -v
sudo systemctl status apache2 --no-pager

Ubuntu paket kurulumunun servisi başlatabileceğini unutmayın. Güvenlik duvarı kullanıyorsanız SSH erişiminizi koruyun ve yalnız gereken web portlarını açın. Yeni kurulum için bütün güvenlik duvarını kapatmayın. HTTPS yayını için 443, HTTP yönlendirmesi ve HTTP-01 sertifika doğrulaması için 80 gerekebilir.

2. Ayrı site kökü ve test sayfası hazırlayın

Aşağıdaki dizin bu örnek siteye aittir. Dağıtım kullanıcısı dosyaları yönetir; web sunucusuna içerik ağacının tamamında yazma yetkisi verilmez.

sudo install -d -o "$(id -u)" -g "$(id -g)" -m 0755 /var/www/fc-example/public
cat > /var/www/fc-example/public/index.html <<'HTML'
<!doctype html>
<html lang="tr"><meta charset="utf-8"><title>Apache test</title>
<h1>Apache virtual host OK</h1></html>
HTML
chmod 0644 /var/www/fc-example/public/index.html

Uygulamanız yükleme veya önbellek klasörüne yazacaksa yalnız gereken klasör için ayrı izin tanımlayın. Statik site için web kullanıcısının dosya değiştirme yetkisine ihtiyacı yoktur.

3. Sanal sunucu dosyasını oluşturun

/etc/apache2/sites-available/fc-example.conf zaten varsa önce içeriğini inceleyin ve yedekleyin; mevcut bir siteyi bu örnekle ezmeyin. Yeni dosyaya şunu yazın:

<VirtualHost *:80>
    ServerName site.example.com
    DocumentRoot /var/www/fc-example/public

    <Directory /var/www/fc-example/public>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/fc-example-error.log
    CustomLog ${APACHE_LOG_DIR}/fc-example-access.log combined
</VirtualHost>

Options -Indexes dizin listesini kapatır. AllowOverride None, .htaccess dosyalarının bu statik örneği değiştirmesini engeller. WordPress gibi yeniden yazma kuralı isteyen uygulamalarda yalnız ilgili dizin ve gerekli yönergeler için izin verin.

sudo a2ensite fc-example.conf
sudo apache2ctl configtest
sudo apache2ctl -S

configtest sonucunda Syntax OK görmeden servis yüklemeyin. -S çıktısında alan adının doğru dosya ve porta bağlandığını kontrol edin. Sonra:

sudo systemctl reload apache2
curl --fail --resolve site.example.com:80:127.0.0.1 http://site.example.com/
curl -I --resolve site.example.com:80:127.0.0.1 http://site.example.com/not-found

İlk istek test başlığını, ikinci istek 404 yanıtını vermelidir. --resolve yalnız bu curl isteğinin DNS çözümünü değiştirir; gerçek DNS kaydı oluşturmaz. Sunucunun IP adresiyle görülen varsayılan site, alan adının doğru sanal sunucuyu açtığını kanıtlamaz.

4. DNS ve HTTPS’i tamamlayın

Gerçek alan adının A ve varsa AAAA kayıtlarını bu sunucuya yönlendirin. Ek bir www adı kullanacaksanız DNS, ServerAlias ve sertifika kapsamına birlikte ekleyin. Bu örnek tek alan adı kullanır.

Ubuntu deposundaki Certbot Apache eklentisiyle sertifika alacaksanız:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d site.example.com
sudo apache2ctl configtest
sudo certbot renew --dry-run

Gerçek alan adı ve doğrulama erişimi hazır olmadan komutu çalıştırmayın. DNS-01 veya dış yük dengeleyici kullanıyorsanız o yöntemin kendi sertifika akışını izleyin. Certbot’un yaptığı sanal sunucu değişikliklerini inceleyin; HTTP’den HTTPS’e yönlendirme ve sertifika yenilemesini doğrulayın. Kurulum hesabı veya uygulama parolasıyla giriş yapmadan önce HTTPS çalışmalıdır.

Kabul, sorun giderme ve geri dönüş

Alan adından dışarıdan HTTPS yanıtı, geçerli sertifika zinciri, doğru iç sayfa ve 404 davranışını kontrol edin. Kaynak klasöründe dosya listelenmediğini, günlüklerde beklenmeyen hata olmadığını ve web kullanıcısının kodu değiştiremediğini doğrulayın.

  • Address already in use: 80/443 dinleyen süreci bulun; mevcut sunucuyu rastgele durdurmayın.
  • 403: dizin geçiş izinlerini ve Require kuralını inceleyin; çözüm olarak 777 vermeyin.
  • Yanlış site: apache2ctl -S, Host adı ve DNS/AAAA kayıtlarını kontrol edin.
  • Yükleme başarısız: configtest ve journalctl -u apache2 çıktısını inceleyin. Geçersiz yapılandırmayla yeniden başlatma denemelerini tekrarlamayın.

Geri dönüşte önceki site dosyasını geri koyun veya yalnız bu yeni örneği sudo a2dissite fc-example.conf ile devre dışı bırakın; sertifika aracı ek dosya oluşturduysa onu da inceleyin. Ardından configtest ve kontrollü reload uygulayın. Mevcut siteleri veya içerik dizinlerini topluca silmeyin. Yedek dosyalarını da web kökünün dışında saklayın.

Resmî kaynaklar

Teknik içerik ve kaynaklar 4 Ekim 2026 tarihinde gözden geçirildi. Sürüm veya sağlayıcı değişikliğinde ilgili resmî belgeyi yeniden kontrol edin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir