Apache, internet üzerinden web içeriği sunan en güçlü, esnek ve yaygın olarak kullanılan açık kaynaklı yazılımdır. Sunucu, istemci web sitesi etki alanı ile herhangi bir istekte bulunduğunda, HTML dosyaları olarak sunulan içeriği sunarak bir teslimatçı olarak çalışır.
En önemlisi, Apache dahil web sunucuları Linux, Windows, Solaris, macOS vb. gibi birden çok işletim sistemini destekler. Bu nedenle, bir bilgisayarı kolayca birden çok web sitesini barındıran bir sunucuya dönüştürebilirsiniz.
Apache HTTP sunucusu, yazılım ve uygulama entegrasyonu için kapsamlı desteğe sahip modüllerin yüklenmesine izin verir. Bu makale, Linux’ta bir Apache HTTP sunucusunun kurulumunu ve konfigürasyonunu detaylandırmaktadır.
Adım 1: Apache Sunucusunu Linux’a Kurun
Apache kurulumuna başlamadan önce , resmi depolardan Linux paketi veri tabanını güncellemelisiniz. Herhangi bir güvenlik açığından kaçınmaya yardımcı olan ve paketlere en son özellikleri içeren gerekli bir adımdır.
Sistem havuzu listesini güncelleyin ve aşağıdaki komutları kullanarak Apache’yi kurun:
Ubuntu ve Debian’da:
sudo apt-get update
sudo apt-get install apache -y
CentOS’ta:
sudo yum update
sudo yum install httpd -y
Fedora’da:
sudo dnf update
sudo dnf install httpd -y
Apache’yi Arch Linux’a kurmak için şunu çalıştırın:
sudo pacman -Syu
sudo pacman -S apache
Ubuntu/Debian dağıtımlarının Apache’yi apache2 olarak adlandırdığını, CentOS ve Fedora’nın ise httpd olarak adlandırdığını unutmayın.
2. Adım: Apache Hizmet Durumunu Doğrulayın
Debian tabanlı dağıtımlarda Apache hizmeti otomatik olarak başlar. Sunucunun açılış sayfasına erişmek için tarayıcıya gidebilir ve yerel IP adresinizi girebilirsiniz. Sunucunuzun adresinden emin değilseniz , ayrıntıları yazdırmak için hostname -i komutunu çalıştırın.
hostname -i
Çıktı:
192.168.43.130
Sayfa, başarılı kurulumu onaylar.
http://<local_server_IPadd>
Alternatif olarak, kurulumu doğrulamak için aşağıdaki komutu çalıştırın:
apache2 -version
Çıktı:
CentOS çalıştırıyorsanız hizmet otomatik olarak başlamaz. Komutu yürüterek hizmeti manuel olarak başlatabilirsiniz:
sudo systemctl start httpd
Hizmet durumunu aşağıdaki gibi kontrol edin:
sudo systemctl status httpd
Adım 3: Güvenlik Duvarını Apache Sunucu Erişimine İzin Verecek Şekilde Yapılandırın
Apache yapılandırmasındaki bir diğer zorunlu adım, Linux’taki UFW güvenlik duvarının, trafiğin varsayılan 80 numaralı bağlantı noktası üzerinden sunucuya erişmesine izin vermesini veya kabul etmesini sağlamaktır. Kurulum sırasında hizmet, bazı uygulama profilleriyle güvenlik duvarına kaydolur. Uygulama profillerinin listesi, Apache erişimini etkinleştirmenize/devre dışı bırakmanıza yardımcı olur.
Tüm Apache uygulama profillerini listelemek için aşağıdaki komutu kullanın:
sudo ufw app list
Çıktı:
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Mevcut profiller şunları temsil eder:
- Apache : İnternet üzerinden şifrelenmemiş iletişimi etkinleştirmek için yalnızca 80 numaralı bağlantı noktasını açar
- Apache Full : Şifrelenmemiş ve güvenli iletişim için 80 ve 443 numaralı bağlantı noktalarını açar
- Apache Secure : 443 numaralı bağlantı noktasında trafiğe izin vererek HTTPS aracılığıyla güvenli sunucu erişimi sağlar
Sunucu için SSL/TLS etkin olmadığı için, aşağıdaki gibi yalnızca 80 numaralı bağlantı noktasında UFW erişimine izin vereceğiz:
sudo ufw allow 'Apache'
Şimdi aşağıdakileri çalıştırarak güvenlik duvarı durumunu kontrol edin:
sudo ufw status
Adım 4: Apache Dizinlerini ve Dosyalarını Anlayın
Başarılı sunucu kurulumu ve yapılandırmasından sonra, her yeni başlayan, sunucunun web sitelerini ve içeriklerini nasıl yönettiğini bilmelidir. / var/www/html dizini, sunucunuzda barındırmak istediğiniz tüm web sitelerini yönetir.
Varsayılan olarak, dizin daha önce gördüğünüz web sayfasını içerir. Apache, birden çok web sitesini barındırmak için bu klasörde farklı alt dizinler oluşturmanıza olanak tanır.
Ubuntu ve Debian tabanlı dağıtımlarda, Apache sunucusunun ana yapılandırma dizini /etc/apache2 iken, CentOS için /etc/httpd’dir . Bu nedenle, sunucunun tüm yapılandırma dosyaları bu dizinlerde bulunur. En bilinen dosyalardan/dizinlerden bazıları şunlardır:
- /var/log/apache2/error.log : Karşılaşılan tüm hataları günlüğe kaydeder
- /var/log/apache2/access.log : Sunucuya yapılan tüm erişim isteklerini günlüğe kaydeder
- /etc/apache2/sites-available : Sanal konakları içeren dizin
- /etc/apache2/sites-enabled : Sanal ana bilgisayar başına web siteleri sunmaya hazır mağazalar. a2ensite komutunu kullanarak siteler tarafından kullanılabilen dizindeki yapılandırma dosyasını bağlamadan çalışamaz.
Linux’ta Dirty Pipe Exploit Nedir ve Nasıl Düzeltebilirsiniz?
Regresyon Testi ve Birim Testinin Farkı Nedir?
Fusion 360 Becerilerinizi Geliştirecek 11 Adım
Sanal Sunucu Kurmak İçin Bir Örnek
Apache sunucu kurulumu, tüm Linux dağıtımlarında varsayılan bir /var/www/html dizini oluşturur . Bu dizin, web sitenizin tüm dosyalarını içerir, ancak aynı sunucuda birden fazla web sitesi barındırmak istiyorsanız çalışmaz.
Birden çok etki alanına hizmet etmek için sanal ana bilgisayarları kullanabilir ve /var/www klasörü içinde aşağıdaki gibi bir etki alanı dizini oluşturabilirsiniz:
sudo mkdir /var/www/host_example
chown kullanarak dizinin sahipliğini ve dosya izinlerini değiştirin.
sudo chown -R $current_user:$current_user /var/www/host_example
sudo chmod -R 755 /var/www/host_example
Şimdi /var/www/host_example/html/content.html dosyasını favori düzenleyicinizde açın ve aşağıdaki HTML’yi kopyalayın/yapıştırın:
<html>
<head>
<title>Welcome to host_example!</title>
</head>
<body>
<h1>You are running host_example on Ubuntu 18.04!</h1>
</body>
</html>
Apache, sanal ana bilgisayarların kaydını içeren bir depolama yeri işlevi gören bir yapılandırma klasörü oluşturur. Varsayılan yapılandırma dosyası /etc/apache2/sites-available/000-default.conf şeklindedir . Ancak, alan adınıza göre yeni bir dosya oluşturabilir ve varsayılan dosyada bulunan yapılandırma bloğunu kopyalayıp/yapıştırabilirsiniz.
Dosyayı seçtiğiniz bir metin düzenleyiciyle düzenleyin ve alan adınız ve yeni dizinle aşağıdaki gibi güncelleyin:
<VirtualHost *:80>
ServerAdmin admin@host_example
ServerName host_example
ServerAlias www.host_example
DocumentRoot /var/www/host_example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Etki Alanı Yapılandırma Dosyanızı Etkinleştirin
Etki alanı yapılandırma dosyası host_example.conf aktivasyonu, a2ensite kullanımını gerektirir.
sudo a2ensite host_example.conf
Yukarıdaki çıktı, varsayılan yapılandırma dosyasını (000-default.conf) devre dışı bırakmak için gereksinimleri gösterir:
sudo a2dissite 000-default.conf
Şimdi değişiklikleri yüklemek için apache hizmetini yeniden başlatın.
sudo systemctl restart apache2
Tarayıcıya gidin ve web sitenize hizmet edip etmediğini kontrol etmek için alan adına gidin:
http://host_example
Yapılandırma Hataları Testi
apache2ctl yardımcı programı, Apache sunucusu için herhangi bir yapılandırma hatası olup olmadığını kontrol etmenizi sağlar. Başarılı hatasız yapılandırmayı doğrulamak için aşağıdaki komutun Syntax OK çıktısını döndürmesi gerekir:
sudo apache2ctl configtest
Çıktı:
Syntax OK
Apache Kullanarak Linux Sunucularında Birden Çok Web Sitesi Barındırma
Yukarıdaki öğretici, bir Apache sunucusunu kurmanın ve yapılandırmanın modülerliğini ve kolaylığını gösterir. Sunucunun çok yönlülüğü, kurulum ve barındırma web sitelerini gereksinimlerinize göre yapılandırmanıza olanak tanır. Sanal ana bilgisayar kurulumunun kullanım durumu, yapılandırma dosyalarının nasıl çalıştığını ve etkileşime girdiğini gösterir.
Linux dağıtımınıza ve Apache sürümünüze bağlı olarak özelliklerin/klasörlerin değişebileceğini de fark etmiş olabilirsiniz. Son olarak, sunucu hizmetlerini optimize edilmiş bir şekilde yönetmek, başlatmak veya yeniden yüklemek için Apache yönetim komutları vardır. Web sitelerinizi barındırmak için başka Linux sunucuları da bulabilirsiniz.