adsense

19 Aralık 2022 Pazartesi

Debian Server Üzerinde (panel kullanmadan) Birden Fazla Domain Barındırmak

Merhaba, bir sunucunuz var ve birden fazla domaini burada barındırmak istiyorsunuz. Ama panel (cPanel, plesk vb.) kurmak istemiyorsunuz. O zaman bu yazı tam size göre.


Öncelikle neler yapacağımızdan bahsedelim;

  • Bir sunucu kiralıyoruz (vds, dedicated, cloud)
  • Sunucuya Apache kuruyoruz
  • Apache 'yi domainlere göre kurguluyoruz.
  • Domainleri bu sunucuya yönlendiriyoruz
  • Bitti :)
Haydi başlayalım!

Gerçek bilgilerle çalışmak adına elimdeki iki domaini ve küçük bir cloud server ı kullanacağım.

  • Domainler: ailehukuku.com.tr ve cezahukuku.com.tr
  • DNS Server: CloudFlare
  • Sunucu: Natrodan alındı (bu örnek için en küçük konfigurasyonlu olanı seçtik.)
  • Sunucu IP: 37.148.213.13

İlk Adım: Sunucu Kiralama
Natro web sitesine girip gördüğümüz en ucuz serverı alıyoruz. Şu anda 4$ a mevcut.


Burada verilecek komutlar Debian a göre olacağı için işletim sistemi olarak Debian yada Ubuntu 'yu seçebilirsiniz. Aslında CentOs da kullanabilirsiniz. "Paket kurulum" komutlarından başka bir fark yok aralarında. (Bu arada ücret 4,99$ oldu. KDV de eklenecek bilginiz olsun :))


Siparişi verdikten sonra Natro size sunucu kurulumu sonrası 3 Önemli bilgiyi gönderiyor. Sunucu IP adresi, Yönetici kullanıcı adı (ki bu hep root oluyor) ve bir de şifre. Bize de bu bilgiler yeterli zaten.

Bu arada belirtmeden geçmeyelim; Natro ile bu yazı dizisi konusunda herhangi bir iş ortaklığımız bulunmamaktadır. Hali hazırda çalıştığımız firmalardan biridir. Bu yazı dizisi için Natro nun seçilmesi sadece rastlantıdır.

Natro dan gelen Bigiler şöyle;


Sunucuya bağlanalım;

Bir linux sunucuya bağlanırken terminal (konsol) ekranına ihtiyaç duyacaksınız. Mac yada Linux kullanıyorsanız problem yok ama Windows kullanıyorsanız Putty uygulamasını indirmeniz gerekiyor. (Windows kullanıcılarını şöyle alalım: https://www.putty.org/)

Biz Mac üzerinden işlemleri yapacağız.

Bir terminal ekranı açalım ve oraya şu komutu girelim. (İlk komutumuzla başlıyoruz :))

ssh -l root 37.148.213.135

Bu komutu ilk girdiğinizde, ilgili sunucu ile ilk kez bir ssh bağlantısı yapacağınız için key oluşturmanızı isteyecektir. Korkmayın zor bir şey yok. İlk sorduğu soruya "yes" yazıp Enter a basın o zaten oluşturacaktır.

Sonrasında sizden root parolasını soracaktır. Sunucu aldığınız yerden size iletilen parolayı buraya yazacaksınız. (Bilmeyenler için bu terminal ekranlarında parola yazılırken ekranda karakterler görüntülenmez. Siz aynen yazın ve Enter a basın.)

Tebrikler ssh ile sunucunuza bağlandınız. Şimdi ilk işiniz size gönderilen evrenin şifresi formatındaki şifreyi daha aklınızda kalacak başka bir şey ile değiştirmek olmalı. Bunun için sıradaki komutumuz

passwd

Evet, evet sadece bunu yazıp enter a basıyorsunuz. Sistem size iki kez yeni parolanızı soruyor ve bitti.

Apache Kuralım;

ssh ile bağlandığımız sunucumuza şu komut yardımı ile apache yi kuruyoruz.

apt install apache2

Kurulumda bir hata almadıysanız artık sunucunuzda apache servisi aktif demektir. Kontrol etmek için konsolda şu komutu verebilirsiniz.

service --status-all

Çıkan sonuç şöyle olmalı;

Ve artık bir gözatıcıda sunucu IP adresinizi yazarsanız Apache nin standart karşılama ekranını görüntüleyebilirsiniz.

Şimdi sunucuda kullanacağımız domainleri belirtme zamanı;
Apache, yayınlanacak web sitesi dosyalarını varsayılan olarak /var/www klasörü altında toplar. Aslında siz de domainleri bu klasör altında toplayabilirsiniz. (/var/www/ailehukuku.com.tr , /var/www/cezahukuku.com.tr gibi.) Yada dilerseniz farklı bir yerde de bunları tutabilirsiniz. Biz genelde /home/siteler/domain yapısıyla kullanıyoruz. Ama bu yazı dizisinde standardı bozmamak adına /var/www olarak devam edilecektir.

Apache üzerinde basit bir mantık vardır. Sitelere ait konfigürasyon (conf) dosyaları, sitenin durumuna göre bu conf dosyalarının konumu (sites-available, sites-enabled) bir de üst paragrafta bahsettiğimiz web sitesinin dosyalarının bulunacağı klasörün konumu.

Şimdi nasıl yapıldığına bir bakalım;

Öncelikle kullanacağımız web sitelerinin dosyalarının yer alacağı klasörleri oluşturalım.
mkdir -p /var/www/ailehukuku.com.tr/public_html
mkdir -p /var/www/cezahukuku.com.tr/public_html

Klasörlerin haklarını düzenleyelim.
chmod -R 755 /var/www
chown -R www-data:www-data /var/www/ailehukuku.com.tr
chown -R www-data:www-data /var/www/cezahukuku.com.tr

Apache Conf dosyaları XML e benzeyen bir formattadır. İçerisinde değişiklikler yaparken formatını bozmamaya dikkat etmeniz gerekiyor. Yeni domainler için yapacağımız düzenlemelerde hata yapmamak adına varsayılan conf dosyasını kopyalayarak üzerinde değişiklik yapacağız.

Varsayılan conf dosyasını kullanacağımız siteler için kopyalayalım.

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ailehukuku.com.tr.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/cezahukuku.com.tr.conf

Dosyaları nano ile düzenleyebilirsiniz;

nano /etc/apache2/sites-available/ailehukuku.com.tr.conf 

/etc/apache2/sites-available/ailehukuku.com.tr.conf içeriği;

<VirtualHost *:80>

        ServerName ailehukuku.com.tr

        ServerAlias www.ailehukuku.com.tr

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/ailehukuku.com.tr/public_html

        ErrorLog ${APACHE_LOG_DIR}/ailehukuku.com.tr-error.log

        CustomLog ${APACHE_LOG_DIR}/ailehukuku.com.tr-access.log combined

</VirtualHost>

 

nano /etc/apache2/sites-available/cezahukuku.com.tr.conf 

/etc/apache2/sites-available/cezahukuku.com.tr.conf içeriği;

<VirtualHost *:80>

        ServerName cezahukuku.com.tr

        ServerAlias www.cezahukuku.com.tr

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/cezahukuku.com.tr/public_html

        ErrorLog ${APACHE_LOG_DIR}/cezahukuku.com.tr-error.log

        CustomLog ${APACHE_LOG_DIR}/cezahukuku.com.tr-access.log combined

</VirtualHost>


Varsayılan web sitesini (000-default.conf) pasif duruma getirip yeni eklenen iki web sitesini aktif duruma getirelim. 

Not: Bu işlemi Apache nin kendi scripti olan a2dissite ve a2ensite komutlarıyla yapabileceğiniz gibi sites-available klasöründeki conf dosyalarınızı sites-enabled klasörüne linkleyerek (ln -s) de yapabilirsiniz.

Varsayılan siteyi pasif duruma, bizim iki domaini aktif duruma getir. Apache yi yeniden başlat.

a2dissite 000-default.conf
a2ensite ailehukuku.com.tr.conf
a2ensite cezahukuku.com.tr.conf
systemctl restart apache2


Son olarak iki web sitemize de bir index.html dosyası koyalım.

echo "Aile Hukuku" > /var/www/ailehukuku.com.tr/public_html/index.html
echo "Ceza Hukuku" > /var/www/cezahukuku.com.tr/public_html/index.html


Her şey hazır. Artık bir DNS sağlayısından alan adımız yazıldığında sunucumuzun IP adresine yönlendirmesini isteyebiliriz. Bu örnekte CloudFlare i kullanıyoruz.

İki domain için de Aynı IP adresini düz ve www ön ekli olacak şekilde ekliyoruz.


Her şey yolunda gittiyse alan adlarını bir gözatıcının adres çubuğuna yazdığınızda karşınıza şu ekranlar çıkmalı.


Kolay gelsin.







Hiç yorum yok: