Takip et

Apache Web Sunucusunu Ubuntu 20.04 Üzerine Kurulum Rehberi

Apache Web Sunucusunu Ubuntu 20.04 Üzerine Kurulum Rehberi Apache HTTP Sunucusu, dünya genelinde en yaygın kullanılan açık kaynak kodlu web sun

Apache Web Sunucusunu Ubuntu 20.04 Üzerine Kurulum Rehberi

Apache HTTP Sunucusu, dünya genelinde en yaygın kullanılan açık kaynak kodlu web sunucularından biridir. Esnek yapısı, geniş modül desteği ve güçlü topluluk desteği sayesinde, küçük kişisel bloglardan büyük kurumsal uygulamalara kadar çeşitli web sitelerini barındırmak için ideal bir çözümdür. Ubuntu 20.04 (Focal Fossa), uzun süreli destek (LTS) sağlayan kararlı bir işletim sistemi olduğundan, Apache’yi bu platform üzerine kurmak, güvenilir ve bakımı kolay bir web sunucusu ortamı oluşturmak isteyenler için mükemmel bir seçimdir.

Bu kapsamlı rehberde, Apache web sunucusunu Ubuntu 20.04 üzerine adım adım nasıl kuracağınızı, temel yapılandırmaları nasıl yapacağınızı, sanal ana bilgisayarları (virtual hosts) kullanarak birden fazla web sitesini nasıl barındıracağınızı ve sunucunuzun güvenliğini ve performansını artırmak için ek ipuçlarını öğreneceksiniz. Bu rehber, temel Linux komut bilgisine sahip ve sudo ayrıcalıklarına sahip bir kullanıcı hesabı olan herkes için uygundur.

1. Ön Koşullar ve İlk Adımlar

Apache kurulumuna başlamadan önce, sunucunuzun güncel olduğundan ve temel güvenlik duvarı ayarlarının yapıldığından emin olmalıyız. Bu adımlar, sorunsuz bir kurulum süreci ve güvenli bir çalışma ortamı için kritik öneme sahiptir.

1.1 Sunucuya Bağlanma

Kuruluma başlamak için Ubuntu 20.04 sunucunuza SSH (Secure Shell) üzerinden bağlanmanız gerekmektedir. Eğer yerel bir makinede çalışıyorsanız bu adımı atlayabilirsiniz.

ssh kullanici_adi@sunucu_ip_adresi

kullanici_adi yerine kendi kullanıcı adınızı ve sunucu_ip_adresi yerine sunucunuzun IP adresini yazarak bağlanabilirsiniz.

1.2 Sistem Güncelleme

Kuruluma başlamadan önce, sisteminizdeki paket listelerini ve mevcut paketleri en son sürümlerine güncellemek iyi bir uygulamadır. Bu, potansiyel güvenlik açıklarını kapatır ve yazılım uyumluluğu sorunlarını önler.

Öncelikle paket listesini güncelleyin:

sudo apt update

Ardından, yüklü paketleri yükseltin:

sudo apt upgrade

Bu komutlar, sisteminizdeki tüm yazılımların en güncel hallerine getirilmesini sağlar. Yükseltme işlemi sırasında bazı servislerin yeniden başlatılması gerekebilir; onay istendiğinde Y tuşuna basarak devam edin.

1.3 Güvenlik Duvarı Yapılandırması (UFW)

Ubuntu’da varsayılan güvenlik duvarı aracı UFW (Uncomplicated Firewall)’dur. Web sunucunuzun düzgün çalışabilmesi için HTTP (80) ve HTTPS (443) trafiğine izin vermeniz gerekmektedir.

Öncelikle UFW’nin durumunu kontrol edin:

sudo ufw status

Eğer UFW etkin değilse veya Apache için gerekli kurallar tanımlı değilse, bu adımları izleyin. UFW genellikle varsayılan olarak devre dışıdır.

Apache kurulumu sırasında UFW, otomatik olarak bazı profil tanımları ekler. Bu profilleri listeleyerek hangi servislerin mevcut olduğunu görebilirsiniz:

sudo ufw app list

Bu komutun çıktısında genellikle şu profilleri görmelisiniz:
* Apache: Sadece 80 numaralı bağlantı noktasından (HTTP) gelen trafiğe izin verir.
* Apache Secure: Sadece 443 numaralı bağlantı noktasından (HTTPS) gelen trafiğe izin verir.
* Apache Full: Hem 80 (HTTP) hem de 443 (HTTPS) numaralı bağlantı noktalarından gelen trafiğe izin verir.

Web sunucunuzu hem HTTP hem de HTTPS üzerinden erişilebilir kılmak istiyorsanız, Apache Full profilini etkinleştirmelisiniz:

sudo ufw allow 'Apache Full'

Eğer sadece HTTP üzerinden erişim sağlamak istiyorsanız Apache profilini, sadece HTTPS üzerinden erişim sağlamak istiyorsanız Apache Secure profilini etkinleştirebilirsiniz. Genellikle, gelecekte SSL/TLS kullanmayı planladığınız için Apache Full seçeneği daha uygundur.

SSH bağlantınızın kesilmemesi için SSH portuna (varsayılan 22) izin verildiğinden emin olun:

sudo ufw allow OpenSSH

Şimdi UFW’yi etkinleştirin:

sudo ufw enable

Onay istendiğinde Y tuşuna basarak devam edin. UFW’nin durumunu tekrar kontrol ederek kuralların doğru bir şekilde uygulandığından emin olun:

sudo ufw status

Çıktıda hem Apache Full (veya seçtiğiniz diğer Apache profili) hem de OpenSSH kurallarının “ALLOW” olarak listelendiğini görmelisiniz.

2. Apache Kurulumu

Ön koşulları tamamladıktan sonra, Apache web sunucusunu sisteminize kurmaya başlayabiliriz.

2.1 Apache Paketini Yükleme

Apache paketi, Ubuntu’nun varsayılan depolarında mevcuttur. Kurulum için apt paket yöneticisini kullanacağız:

sudo apt install apache2

Bu komut, Apache ve gerekli tüm bağımlılıkları yükleyecektir. Kurulum tamamlandığında, Apache servisi otomatik olarak başlayacak ve sistem açılışında otomatik olarak başlamak üzere ayarlanacaktır.

2.2 Apache Servisini Kontrol Etme

Kurulumdan sonra Apache servisinin düzgün çalışıp çalışmadığını kontrol etmek önemlidir. Bunu systemctl komutu ile yapabilirsiniz:

sudo systemctl status apache2

Çıktıda active (running) ifadesini görmeniz, Apache servisinin başarıyla çalıştığı anlamına gelir. Eğer servis çalışmıyorsa, aşağıdaki komutlarla başlatabilir ve sistem açılışında otomatik başlamasını sağlayabilirsiniz:

sudo systemctl start apache2
sudo systemctl enable apache2

2.3 Web Sunucusunu Doğrulama

Apache’nin düzgün bir şekilde kurulduğundan ve güvenlik duvarı ayarlarının doğru olduğundan emin olmak için, web tarayıcınızdan sunucunuzun IP adresine erişmeyi deneyebilirsiniz.

Sunucunuzun genel IP adresini öğrenmek için çeşitli yöntemler vardır:

* Eğer bir bulut sunucu kullanıyorsanız, sağlayıcınızın kontrol panelinden IP adresini bulabilirsiniz.
* Sunucunuzun komut satırından aşağıdaki komutlardan birini kullanabilirsiniz:

ip a s eth0 | grep inet | awk '{print $2}' | cut -d/ -f1

veya harici bir servis kullanarak:

curl -4 icanhazip.com

Tarayıcınızın adres çubuğuna http://sunucu_ip_adresi yazarak erişmeye çalıştığınızda, Ubuntu’nun varsayılan Apache 2 karşılama sayfasını görmelisiniz. Bu sayfa, Apache’nin başarıyla kurulduğunu ve erişilebilir olduğunu gösterir.

3. Apache Yapılandırmasının Temelleri

Apache, oldukça modüler ve yapılandırılabilir bir web sunucusudur. Temel yapılandırma dosyalarını ve dizin yapısını anlamak, ileride daha karmaşık yapılandırmalar yapmanıza yardımcı olacaktır.

3.1 Apache Dosya ve Dizin Yapısı

Ubuntu üzerindeki Apache kurulumu, belirli bir dosya ve dizin yapısına sahiptir:

* /etc/apache2/: Apache’nin ana yapılandırma dizinidir. Tüm genel yapılandırma dosyaları burada bulunur.
* /etc/apache2/apache2.conf: Ana Apache yapılandırma dosyasıdır. Bu dosya, global ayarları, modül yüklemelerini ve diğer yapılandırma dosyalarının dahil edilmesini içerir.
* /etc/apache2/ports.conf: Apache’nin hangi bağlantı noktalarını dinleyeceğini tanımlar (varsayılan olarak 80 ve 443).
* /etc/apache2/conf-available/: Ek yapılandırma parçacıklarını (fragment) içerir.
* /etc/apache2/conf-enabled/: Etkinleştirilmiş yapılandırma parçacıklarının sembolik bağlantılarını içerir.
* /etc/apache2/mods-available/: Mevcut modül yapılandırma dosyalarını içerir.
* /etc/apache2/mods-enabled/: Etkinleştirilmiş modül yapılandırma dosyalarının sembolik bağlantılarını içerir.
* /etc/apache2/sites-available/: Sanal ana bilgisayar yapılandırma dosyalarını içerir. Bu dizindeki dosyalar, a2ensite komutu ile etkinleştirilene kadar kullanılmaz.
* /etc/apache2/sites-enabled/: Etkinleştirilmiş sanal ana bilgisayar yapılandırma dosyalarının sembolik bağlantılarını içerir. a2dissite komutu ile devre dışı bırakılabilirler.

* /var/www/html/: Varsayılan belge kök dizinidir. Tarayıcınızdan sunucunuzun IP adresine eriştiğinizde gördüğünüz varsayılan Apache sayfası burada bulunur. Web sitelerinizin dosyalarını genellikle bu dizin altına veya özel sanal ana bilgisayar dizinlerine yerleştirirsiniz.

* /var/log/apache2/: Apache’nin erişim (access.log) ve hata (error.log) günlük dosyalarını içerir. Sorun giderme için bu günlükler hayati öneme sahiptir.

3.2 Apache Modüllerini Yönetme

Apache’nin gücünün önemli bir kısmı, modüler yapısından gelir. Modüller, Apache’ye ek işlevsellik katar. Örneğin, SSL/TLS şifrelemesi için mod_ssl, URL yeniden yazma için mod_rewrite gibi modüller bulunur.

Yüklü ve etkin modülleri listelemek için:

apache2ctl -M

Bir modülü etkinleştirmek için a2enmod komutunu kullanırız:

sudo a2enmod [modül_adı]

Örneğin, URL yeniden yazma modülünü etkinleştirmek için:

sudo a2enmod rewrite

Bir modülü devre dışı bırakmak için a2dismod komutunu kullanırız:

sudo a2dismod [modül_adı]

Herhangi bir yapılandırma değişikliğinden sonra (modül etkinleştirme/devre dışı bırakma dahil), Apache yapılandırmasını test etmeli ve ardından servisi yeniden başlatmalısınız:

sudo apache2ctl configtest
sudo systemctl restart apache2

configtest komutu, yapılandırma dosyanızda herhangi bir sözdizimi hatası olup olmadığını kontrol eder. Eğer Syntax OK çıktısını görürseniz, yeniden başlatma güvenlidir.

4. Sanal Ana Bilgisayarlar (Virtual Hosts) Oluşturma

Sanal ana bilgisayarlar, tek bir Apache sunucusu üzerinde birden fazla web sitesini barındırmanıza olanak tanır. Her web sitesi, kendi alan adına, belge köküne ve yapılandırmasına sahip olabilir. Bu, çoğu web sitesi barındırma senaryosu için standart bir yaklaşımdır.

Bu bölümde, ornekalanadi.com adında bir alan adı için sanal ana bilgisayar oluşturma sürecini adım adım ele alacağız. Kendi alan adınızı kullanmak için ornekalanadi.com yerine kendi alan adınızı yazmanız gerekmektedir.

4.1 Alan Adı için Dizin Yapısı Oluşturma

İlk adım, web sitenizin dosyalarını barındıracak bir dizin yapısı oluşturmaktır. Genellikle, her sanal ana bilgisayar için /var/www/ altında ayrı bir dizin oluşturulur.

sudo mkdir -p /var/www/ornekalanadi.com/html

Bu komut, ornekalanadi.com için ana dizini ve içinde web sitesi dosyalarını barındıracak html alt dizinini oluşturur.

Ardından, web sunucusunun bu dizinlere erişebilmesi için doğru izinleri ayarlamamız gerekir. Genellikle, web sunucusu süreçleri www-data kullanıcısı altında çalışır. Ancak, dosyaları oluşturup düzenlerken kendi kullanıcı hesabınızın sahipliğinde olması daha pratiktir.

sudo chown -R $USER:$USER /var/www/ornekalanadi.adresi/html

Bu komut, html dizininin ve içeriğinin sahipliğini mevcut kullanıcınıza ($USER) verir.

Son olarak, web kök dizini için genel okuma izinlerini ayarlayın, böylece herkes web sitenizi görüntüleyebilir:

sudo chmod -R 755 /var/www/ornekalanadi.com

4.2 Örnek Bir HTML Sayfası Oluşturma

Sanal ana bilgisayarınızın çalıştığını test etmek için basit bir index.html dosyası oluşturalım:

sudo nano /var/www/ornekalanadi.com/html/index.html

Dosyanın içine aşağıdaki HTML içeriğini yapıştırın:




    
    Hoş Geldiniz!


    
    

Bu, ornekalanadi.com için varsayılan bir web sayfasıdır.

Kaydedin ve kapatın (CTRL+X, Y, Enter).

4.3 Sanal Ana Bilgisayar Yapılandırma Dosyası Oluşturma

Apache, sanal ana bilgisayar yapılandırma dosyalarını /etc/apache2/sites-available/ dizininde saklar. Varsayılan yapılandırma dosyasını kopyalayarak yeni bir dosya oluşturmak en kolay yoldur:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ornekalanadi.com.conf

Şimdi yeni oluşturduğunuz yapılandırma dosyasını düzenleyin:

sudo nano /etc/apache2/sites-available/ornekalanadi.com.conf

Dosyanın içeriğini aşağıdaki gibi düzenleyin. Özellikle ServerAdmin, DocumentRoot, ServerName ve ServerAlias direktiflerine dikkat edin:


    ServerAdmin webmaster@ornekalanadi.com
    ServerName ornekalanadi.com
    ServerAlias www.ornekalanadi.com
    DocumentRoot /var/www/ornekalanadi.com/html

    ErrorLog ${APACHE_LOG_DIR}/ornekalanadi.com_error.log
    CustomLog ${APACHE_LOG_DIR}/ornekalanadi.com_access.log combined

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

Açıklamalar:
* ServerAdmin: Sunucu yöneticisinin e-posta adresi. Hata mesajlarında görünebilir.
* ServerName: Bu sanal ana bilgisayarın yanıt vereceği birincil alan adı.
* ServerAlias: Bu sanal ana bilgisayarın yanıt vereceği diğer alan adları (örneğin www ön eki ile).
* DocumentRoot: Web sitesi dosyalarının bulunduğu dizin.
* ErrorLog ve CustomLog: Bu sanal ana bilgisayar için hata ve erişim günlüklerinin kaydedileceği dosyalar. Bu, her site için ayrı günlük tutmanıza olanak tanır.
* bloğu: Bu dizin için özel ayarları tanımlar.
* Options Indexes FollowSymLinks: Dizin listelemeye (Indexes) ve sembolik bağlantıları takip etmeye (FollowSymLinks) izin verir. Güvenlik nedeniyle Indexes seçeneğini kaldırmak isteyebilirsiniz.
* AllowOverride All: .htaccess dosyalarının bu dizindeki Apache direktiflerini geçersiz kılmasına izin verir. Bu, WordPress gibi CMS’ler için genellikle gereklidir.
* Require all granted: Bu dizine tüm isteklerin erişmesine izin verir.

Kaydedin ve kapatın.

4.4 Sanal Ana Bilgisayarı Etkinleştirme

Yeni sanal ana bilgisayar yapılandırma dosyasını etkinleştirmek için a2ensite komutunu kullanın:

sudo a2ensite ornekalanadi.com.conf

Bu komut, /etc/apache2/sites-available/ornekalanadi.com.conf dosyasından /etc/apache2/sites-enabled/ dizinine bir sembolik bağlantı oluşturur.

4.5 Varsayılan Sanal Ana Bilgisayarı Devre Dışı Bırakma (İsteğe Bağlı)

Eğer sunucunuzda sadece özel alan adlarınız üzerinden erişim sağlamak istiyorsanız, varsayılan 000-default.conf sanal ana bilgisayarını devre dışı bırakabilirsiniz. Bu, sunucunuzun IP adresine doğrudan erişildiğinde sitenizin görünmesini engeller.

sudo a2dissite 000-default.conf

4.6 Yapılandırmayı Test Etme ve Apache’yi Yeniden Başlatma

Değişiklikleri uygulamadan önce Apache yapılandırmanızda hata olup olmadığını kontrol etmek her zaman iyi bir uygulamadır:

sudo apache2ctl configtest

Syntax OK çıktısını görmeniz durumunda, Apache servisini yeniden başlatarak değişiklikleri uygulayın:

sudo systemctl restart apache2

4.7 Alan Adını Test Etme

Sanal ana bilgisayarınızın doğru çalıştığını doğrulamak için, alan adınızın (örneğin ornekalanadi.com) sunucunuzun IP adresine işaret ettiğinden emin olmanız gerekir. Bunu, alan adı kayıt şirketinizin DNS ayarlarından bir A kaydı oluşturarak yaparsınız.

DNS değişikliklerinin internet genelinde yayılması biraz zaman alabilir (genellikle birkaç dakika ile birkaç saat arasında). DNS yayılımı tamamlandıktan sonra, web tarayıcınızdan http://ornekalanadi.com adresine giderek oluşturduğunuz örnek HTML sayfasını görmelisiniz.

5. Ek Apache Yapılandırmaları ve Güvenlik İpuçları

Apache kurulumunuzu daha işlevsel, güvenli ve performanslı hale getirmek için bazı ek yapılandırmalar ve en iyi uygulamalar mevcuttur.

5.1 .htaccess Dosyalarını Etkinleştirme

.htaccess dosyaları, Apache’nin dizin bazında yapılandırma değişiklikleri yapmasına olanak tanır. Özellikle WordPress gibi içerik yönetim sistemleri (CMS) veya diğer web uygulamaları için URL yeniden yazma (mod_rewrite) gibi özellikler için gereklidir.

Önceki sanal ana bilgisayar yapılandırmanızda (ornekalanadi.com.conf), bloğu içinde AllowOverride All direktifini zaten ekledik. Bu direktif, .htaccess dosyalarının bu dizindeki Apache direktiflerini geçersiz kılmasına izin verir.

Eğer henüz etkin değilse, mod_rewrite modülünü etkinleştirmeniz gerekebilir:

sudo a2enmod rewrite

Değişiklikleri uygulamak için Apache’yi yeniden başlatın:

sudo systemctl restart apache2

Artık DocumentRoot dizininizde .htaccess dosyaları oluşturarak URL yeniden yazma kuralları, parola korumalı dizinler veya özel hata sayfaları gibi ayarları yapabilirsiniz.

5.2 SSL/TLS Kurulumu (Certbot ile Let’s Encrypt)

Günümüzde web siteleri için HTTPS kullanmak bir zorunluluk haline gelmiştir. HTTPS, tarayıcı ile sunucu arasındaki iletişimi şifreleyerek veri güvenliğini sağlar. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlayan bir sertifika yetkilisidir ve Certbot aracı ile kolayca entegre edilebilir.

Öncelikle Certbot ve Apache eklentisini kurun:

sudo apt install certbot python3-certbot-apache

Ardından, alan adınız için bir SSL sertifikası almak ve Apache yapılandırmasını otomatik olarak yapmak için Certbot’u çalıştırın:

sudo certbot --apache -d ornekalanadi.com -d www.ornekalanadi.com

Certbot, e-posta adresi, hizmet şartları onayı gibi bazı sorular soracak ve ardından sertifikayı otomatik olarak alıp Apache yapılandırmanızı HTTPS için güncelleyecektir. Ayrıca, sertifikaların otomatik yenilenmesini de ayarlayacaktır.

5.3 Apache Güvenliğini Artırma

Web sunucunuzun güvenliği, siber saldırılara karşı koruma sağlamak için hayati öneme sahiptir. İşte bazı temel güvenlik ipuçları:

* Sunucu İmzalarını Kapatma: Varsayılan olarak Apache, hata sayfalarında veya HTTP başlıklarında sunucu sürümü ve işletim sistemi hakkında bilgi gösterir. Bu bilgiler, potansiyel saldırganlar için faydalı olabilir. Bu bilgileri gizlemek için /etc/apache2/apache2.conf dosyasını düzenleyin:

sudo nano /etc/apache2/apache2.conf

Aşağıdaki satırları bulun veya ekleyin:

ServerTokens Prod
    ServerSignature Off

ServerTokens Prod, Apache’nin sadece “Apache” olarak görünmesini sağlar (sürüm numarası olmadan). ServerSignature Off, sunucu tarafından oluşturulan sayfalarda (hata sayfaları gibi) sunucu sürümünün gösterilmesini engeller.

* Dizin Listelemeyi Devre Dışı Bırakma: Eğer bir dizinde index.html veya index.php gibi bir dizin dosyası yoksa, Apache varsayılan olarak dizin içeriğini listeler. Bu, hassas bilgilerin açığa çıkmasına neden olabilir. Dizin listelemeyi devre dışı bırakmak için, sanal ana bilgisayar yapılandırmanızdaki bloğunda Options -Indexes kullanın:


        Options -Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

Indexes seçeneğinin önündeki eksi işareti, bu özelliğin devre dışı bırakıldığı anlamına gelir.

* Gereksiz Modülleri Devre Dışı Bırakma: Kullanmadığınız Apache modüllerini devre dışı bırakmak, sunucunuzun yüzey alanını azaltır ve potansiyel güvenlik açıklarını azaltır. Örneğin, eğer CGI betikleri kullanmıyorsanız mod_cgi veya mod_cgid modüllerini devre dışı bırakabilirsiniz.

* mod_security Kullanımı: mod_security, Apache için güçlü bir Web Uygulaması Güvenlik Duvarı (WAF) modülüdür. SQL enjeksiyonu, XSS (Cross-Site Scripting) gibi yaygın web saldırılarına karşı koruma sağlar. Kurulumu ve yapılandırması daha karmaşık olsa da, yüksek güvenlik gerektiren uygulamalar için önerilir.

* Düzenli Güncellemeler: Sisteminizdeki ve Apache’deki güvenlik güncellemelerini düzenli olarak yapmak, bilinen güvenlik açıklarına karşı korunmanın en temel yoludur.

Tüm bu değişikliklerden sonra Apache’yi yeniden başlatmayı unutmayın.

5.4 Performans Optimizasyonu

Web sitenizin yükleme hızını artırmak ve sunucu kaynaklarını daha verimli kullanmak için Apache performansını optimize edebilirsiniz:

* MPM (Multi-Processing Modules) Seçimi: Apache, istemci bağlantılarını işlemek için farklı MPM’ler kullanır. Ubuntu 20.04’te varsayılan olarak event MPM etkinleştirilmiştir ve çoğu modern web sitesi için iyi bir performans sunar. Ancak, PHP’yi mod_php ile kullanıyorsanız prefork MPM’ye geçmeniz gerekebilir. PHP-FPM kullanıyorsanız event MPM daha uygun olacaktır.

* Etkin MPM’yi kontrol etmek için: sudo apache2ctl -V | grep -i mpm
* Bir MPM’yi devre dışı bırakmak: sudo a2dismod [mpm_adı]
* Bir MPM’yi etkinleştirmek: sudo a2enmod [mpm_adı]
* Örneğin, prefork MPM’yi etkinleştirmek için:

sudo a2dismod mpm_event
        sudo a2enmod mpm_prefork
        sudo systemctl restart apache2

* mod_deflate (Sıkıştırma): Bu modül, sunucudan gönderilen dosyaları (HTML, CSS, JavaScript gibi metin tabanlı içerikler) sıkıştırarak bant genişliğini azaltır ve sayfa yükleme sürelerini hızlandırır.

sudo a2enmod deflate
    sudo systemctl restart apache2

Daha sonra /etc/apache2/mods-enabled/deflate.conf dosyasını düzenleyerek hangi dosya türlerinin sıkıştırılacağını yapılandırabilirsiniz.

* mod_expires (Önbellekleme): Bu modül, tarayıcılara belirli dosya türlerini ne kadar süreyle önbelleğe alacaklarını bildirerek tekrar eden ziyaretlerde sayfa yükleme sürelerini azaltır.

sudo a2enmod expires
    sudo systemctl restart apache2

/etc/apache2/mods-enabled/expires.conf veya sanal ana bilgisayar yapılandırma dosyanızda önbellekleme kurallarını tanımlayabilirsiniz.

6. Sorun Giderme ve Yaygın Hatalar

Apache ile çalışırken bazı sorunlarla karşılaşmanız olasıdır. Sorun giderme yeteneği, bir sunucu yöneticisinin en önemli becerilerinden biridir.

6.1 Apache Günlüklerini Kontrol Etme

Apache’nin günlük dosyaları, sorun giderme için en değerli bilgi kaynaklarıdır.

* Hata Günlüğü: Sunucunun karşılaştığı sorunları, uyarıları ve hataları kaydeder.

sudo tail -f /var/log/apache2/error.log

Bu komut, hata günlüğünü gerçek zamanlı olarak izlemenizi sağlar.

* Erişim Günlüğü: Web sitenize yapılan tüm istekleri kaydeder. Hangi sayfaların ziyaret edildiğini, hangi IP adreslerinden istek geldiğini ve HTTP durum kodlarını gösterir.

sudo tail -f /var/log/apache2/access.log

Sanal ana bilgisayarlar için özel günlük dosyaları ayarladıysanız (örneğin /var/log/apache2/ornekalanadi.com_error.log), bunları kontrol etmeyi unutmayın.

6.2 Yapılandırma Söz Dizimi Hataları

Apache yapılandırma dosyalarında yapılan hatalar, servisin başlamamasına veya beklenmedik davranışlara neden olabilir.

sudo apache2ctl configtest

Bu komut, yapılandırma dosyalarınızdaki söz dizimi hatalarını kontrol eder. Eğer bir hata varsa, hatanın konumunu ve türünü belirtir. Örneğin, Syntax error on line 123 of /etc/apache2/apache2.conf: Invalid command 'ServerNamee' gibi bir çıktı alabilirsiniz.

6.3 Bağlantı Noktası Çakışmaları

Apache’nin varsayılan olarak 80 (HTTP) ve 443 (HTTPS) numaralı bağlantı noktalarını dinlemesi gerekir. Başka bir servis bu bağlantı noktalarını kullanıyorsa, Apache başlatılamaz.

Hangi servislerin hangi bağlantı noktalarını kullandığını kontrol etmek için:

sudo ss -tulnp | grep -E ':80|:443'

veya

sudo netstat -tulnp | grep -E ':80|:443'

Bu komutlar, 80 veya 443 numaralı bağlantı noktalarını dinleyen süreçleri listeler. Eğer Apache dışında bir süreç listeleniyorsa, o servisi durdurmanız veya bağlantı noktasını değiştirmeniz gerekebilir.

6.4 Güvenlik Duvarı Engellemeleri

UFW kurallarınızın doğru yapılandırıldığından emin olun. Eğer 80 veya 443 numaralı bağlantı noktalarına izin verilmediyse, web siteniz dışarıdan erişilemez olacaktır.

sudo ufw status verbose

Bu komut, UFW’nin tüm kurallarını ayrıntılı bir şekilde gösterir. Apache için gerekli bağlantı noktalarının “ALLOW” olarak listelendiğinden emin olun.

7. Sonuç

Bu rehberde, Apache web sunucusunu Ubuntu 20.04 üzerine kurmanın tüm adımlarını, temel yapılandırmalarını, sanal ana bilgisayarlar oluşturmayı, güvenlik ve performans ipuçlarını ve yaygın sorun giderme yöntemlerini ayrıntılı olarak ele aldık. Artık kendi web sitelerinizi barındırmak için sağlam ve güvenilir bir Apache sunucusuna sahipsiniz.

Kurulumdan sonraki adımlarınız şunlar olabilir:

* İçerik Yönetim Sistemi (CMS) Kurulumu: WordPress, Joomla, Drupal gibi bir CMS kurarak web sitenizin içeriğini kolayca yönetebilirsiniz.
* Veritabanı Kurulumu: Çoğu web uygulaması bir veritabanı gerektirir. MySQL/MariaDB veya PostgreSQL gibi bir veritabanı sunucusu kurmanız gerekebilir.
* FTP Sunucusu Kurulumu: Dosyaları sunucuya daha kolay aktarmak için bir FTP sunucusu (örneğin vsftpd) kurabilirsiniz.
* İleri Seviye Apache Yapılandırmaları: Daha karmaşık yönlendirmeler, kimlik doğrulama mekanizmaları veya özel modüller gibi ihtiyaçlarınıza göre Apache’yi daha da özelleştirebilirsiniz.

Unutmayın ki bir sunucuyu yönetmek sürekli bir öğrenme ve dikkat gerektiren bir süreçtir. Güvenlik güncellemelerini takip etmek, günlükleri düzenli olarak kontrol etmek ve performans iyileştirmeleri yapmak, sunucunuzun sağlıklı ve güvenli çalışmasını sağlamak için önemlidir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version