Kategoriler
CentOS

CentOS 8 Apache Virtual Host Kurulumu

CentOS 8 yüklü sunucunuza Apache ile birden fazla alan adını host etmek istediğinizde karşınıza VirtualHost yani sanal konaklar kavramı çıkacaktır. Apache Virtual Host ile size alan adlarınız için farklı host alanları açmanıza ve barındırmanıza olanak sağlar.

İşe başlamadan önce sunucu işletim sisteminizin CentOS 8 olduğundan emin olun.

CentOS 8 Apache Kurulumu

Sunucuzda Apache önceden kurulu değil ise aşağıdaki adımları takip ederek Apache kurulumu ile başlayabilirsiniz.

sudo dnf install httpd

Eğer sisteminizde Firewalld kurulu ve aktifse aşağıdaki komutu çalıştırarak http ve https isteklerini kabul ediyoruz.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Şimdi firewall ı yeniden başlatıp değişikliğin geçerli olmasını sağlıyoruz.

sudo firewall-cmd --reload

Web sunucumuzu kontrol edelim

Apache yi çalıştırıyoruz

sudo systemctl start httpd

Apache çalışma durumuna bakalım

sudo systemctl status httpd

Sonuç çıktısı şöyle olması gerekli “active (running)” kısmına dikkat!

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2020-09-09 13:43:35 +03; 37min ago
     Docs: man:httpd.service(8)
 Main PID: 1655 (httpd)
   Status: "Total requests: 914; Idle/Busy workers 100/0;Requests/sec: 0.404; Bytes served/sec: 2.4KB/sec"
    Tasks: 279 (limit: 47622)
   Memory: 56.0M
   CGroup: /system.slice/httpd.service
           ├─1655 /usr/sbin/httpd -DFOREGROUND
           ├─1814 /usr/sbin/httpd -DFOREGROUND
           ├─1815 /usr/sbin/httpd -DFOREGROUND
           ├─1816 /usr/sbin/httpd -DFOREGROUND
           ├─1817 /usr/sbin/httpd -DFOREGROUND
           ├─1818 /usr/sbin/httpd -DFOREGROUND
           └─3075 /usr/sbin/httpd -DFOREGROUND

Eyl 09 13:43:35 MyServer systemd[1]: Starting The Apache HTTP Server...
Eyl 09 13:43:35 MyServer systemd[1]: Started The Apache HTTP Server.
Eyl 09 13:43:35 MyServer httpd[1655]: Server configured, listening on: port 443, port 80

Şimdi Apache’nin reboot sonrasında otomatik başlatılmasını sağlayalım

sudo systemctl enable httpd

Artık Apache nizi kullanabilirsiniz.

Apache Virtual Host yani Sanal Konakları Yapılandıralım

İlk önce sanal konaklarımızın dosyalarının bulunacağı dizinleri ayarlamakla başlıyoruz. Apache standart olarak “/var/www/html” yolundaki dosyaları okur. Ancak CentOS kurulumlarında özellikle ayarlamamışsanız “/var” dizini için ayrılan alan düşüktür ve site barındırmanız için yeterli olmayacaktır. Bu nedenle genellikle “/home” dizini bu iş için idealdir. Örneğimizde “/home” dizini içerisine çeşitli alan adlarını host edeceğiz.

Alan adı olarak “halityesil.com” u kullanacağım. Siz yapılandırmanızda “halityesil.com” olan yerlere kendi alan adınızı yazarak devam edebilirsiniz.

Sitemizin dosyalarının bulunacağı dizini oluşturalım. (burada -p parametresi mevcut olmayan üst dizinlerinde otomatik olarak oluşturulmasını sağlayacaktır)

sudo mkdir -p /home/halityesil.com/public_html

Şimdi apache için logları tutacağı bir dizin oluşturalım

sudo mkdir -p /home/halityesil.com/log

Şimdi dosya izinlerimizi verelim. (-R parametresi içindeki dizinleride aynı değere atar)

sudo chmod -R 755 /home/halityesil.com

Şimdi sitemizi görebilmek için public_html içerisine bir index.html oluşturalım

sudo nano /home/halityesil.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Halityesil.com!</title>
  </head>
  <body>
    <h1>Success! The Halityesil.com virtual host is working!</h1>
  </body>
</html>

Yukarıdaki html kodunu yazdıktan sonra CTRL+X ile kaydedip çıkıyoruz.

Buraya kadar sitemizin dosya ve dizin yapısı hazır.

Apache Virtual Host Direktiflerini Hazırlayalım

Standart kurulumda apache conf dosyaları “/etc/httpd/” dizininde bulunur öncelikle ilgili dizine intikal edelim.

cd /etc/httpd

Şimdi kullanılabilir hostlarımızı tutmak için “sites-available” ve aktif hostlarımız için ise “sites-enabled” şeklinde iki dizini “/etc/httpd” içerisine oluşturalım

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Nano kullanarak Apache yapılandırma dosyasını açıyoruz ve aktif konaklarımızın okunmasını sağlıyoruz. Bu bölüm genelde httpd.conf dosyasının en sonunda yer alır. Kolayca bulmak için en alta inin ve “IncludeOptional conf.d/*.conf” deyiminin yerini bulun ve altına ekleyin

sudo nano /etc/httpd/conf/httpd.conf
...
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf

# Sanal konalar buradan okunacak
IncludeOptional sites-enabled/*.conf

Şimdi halityesil.com için bir yapılandırma dosyası hazırlayalım.

Nano eğer dosya belirtilen adreste varsa düzenlemek için açar, yoksa boş bir dosya açar ve kaydetmenizi sağlar.

sudo nano /etc/httpd/sites-available/halityesil.com.conf
<VirtualHost *:80>
    ServerName halityesil.com
    ServerAlias www.halityesil.com
    DocumentRoot /home/halityesil.com/public_html
    ErrorLog /home/halityesil.com/log/error.log
    CustomLog /home/halityesil.com/log/requests.log combined
</VirtualHost>

CTRL+X ile kaydetip çıkıyoruz.

Şimdi yapılandırma dosyamızı Apache nin okuması için sites-enabled dizinine linkliyoruz. Bu sayede sites-enabled içerisinden sadece linki silerek bir siteyi deaktif yapabilirsiniz. Orjinal dosyanız güvende kalacaktır.

sudo ln -s /etc/httpd/sites-available/halityesil.com.conf /etc/httpd/sites-enabled/halityesil.com.conf

Buraya kadar Apache Virtual Host kullanıma hazır. Ama önce yapılandırmamızın doğruluğunu kontrol edelim.

sudo apachectl configtest
Syntax OK

Sonuç “Syntax OK” ise şimdi Apache yi yeniden başlatabiliriz.

sudo systemctl restart httpd

Tebrikler artık bir Apache Virtual Host’umuz var.

Takıldığınız, hata aldığınız yapamadığınız yerlerde lütfen sormaktan çekinmeyin. Zamanım oldukça, fırsat buldukça bütün soruları yanıtlamaya gayret ediyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.