Bu makalemizde çok yaygın olarak kullanılan Apache Web sunucu üzerinde nasıl Virtual Host tanımlayacağınızı anlatacağız. Virtul Host ile bir web sunucu üzerinde birden fazla web sitesi tanımlayabilir ve her birine özel ayarlar yapabilirsiniz.
Gereksinimler
Bu makalede anlatılan kurulumlar Ubuntu 14.04 LTS ‘e göre anlatılmıştır ancak benzer komutlar ile farklı Linux dağılımlarında da işlem yapabilirsiniz.
İşlemlerimizi root olmayan bir kullanıcı ile gerçekleştireceğiz, bu yüzden yazdığımız komutların önüne “sudo” komutunu ekleyerek root yetkisindeki işlemleri yapabileceğiz. İlk önce Apache kurulumunu “apt-get” komutu ile yapıyoruz.
sudo apt-get update
sudo apt-get install apache2
Bu komutlar tamamlandığında Apache Server kurulumunu tamamlamış oluyoruz.
Dokümanda bizim kullanacağımız örnek virtual host (sanal web sunucular) deneme1.com ve deneme2.com olacak. Tüm konfigürasyon ayarlamalarını bu alan adlarını baz alarak yapacağız. Tüm konfigürasyon değişikliklerini en basit şekilde anlatmaya çalışacağız.
Birinci Adım – Klasör Şablonu Oluşturma
İlk adımımızda iki ayrı alan adının web dosyalarının bulunacağı klasörleri oluşturacağız. Her iki alan adı için ayrı “document root” klasörü oluşturacağız. Her alan adı klasörünün altına “public_html” klasörü oluşturup web dosyalarımızı burada barındıracağız.
Bu dokümanda kullandığımız alan adlarına açtığımı klasörler aşağıdaki gibidir:
sudo mkdir -p /var/www/deneme1.com/public_html
sudo mkdir -p /var/www/deneme2.com/public_html
İkinci Adım – Yetki Verme
Klasörlerimizi oluşturduk ancak klasör sahibi olarak root kullanıcısı görünmektedir. Bunu www-data kullanıcısı olarak değiştiriyoruz.
sudo chown -R www-data:www-data /var/www/deneme1.com/public_html
sudo chown -R www-data:www-data /var/www/deneme2.com/public_html
Üçüncü Adım – Demo Sayfası Hazırlama
Oluşturduğumuz sanal klasörlere basit bir demo sayfası ekliyoruz. Bunun için her bir klasöre “index.html” dosyası oluşturup basit bir html kodu ekliyoruz.
deneme1.com için örnek bir index.html dosyası oluşturup değiştiriyoruz:
nano /var/www/deneme1.com/public_html/index.html
Oluşturduğumuz html dosyasına çok basit bir html kodu yazıyoruz:
<html>
<head>
<title>Deneme1.com'a Hos Geldiniz!</title>
</head>
<body>
<h1>Basarili! Deneme1.com Virtual Host'u calisiyor.</h1>
</body>
</html>
Dosya düzenlememiz bittikten sonra kaydedip çıkıyoruz.
Demo html dosyamızı diğerine kopyalıyoruz:
cp /var/www/deneme1.com/public_html/index.html /var/www/deneme2.com/public_html/index.html
Deneme2.com demo sayfasını düzenliyoruz:
nano /var/www/deneme2.com/public_html/index.html
<html>
<head>
<title>Deneme2.com'a Hoş Geldiniz!</title>
</head>
<body>
<h1>Başarılı! Deneme1.com Virtual Host'u çalışıyor.</h1>
</body>
</html>
Değişiklikler tamamlanınca dosyayı kaydedip çıkıyoruz.
Dördüncü Adım – Yeni Virtual Host Dosyaları Oluşturma
Virtual Host dosyaları her bir domain için tanınlanan ve özel direktifler verilebileceği dosyalardır.
Apache ilk kurulduğunda standart bir virtual host konfigürasyon dosyası olan 000-default.conf dosyası ile gelir. Biz bu dosyayı kopyalayarak diğer kendi domainlerimiz için kullancağız.
Konfig dosyalarını kopyalama işe başlayalım:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/deneme1.com.conf
Yeni konfigürasyon dosyamızı root yetkileri ile açıyoruz:
sudo nano /etc/apache2/sites-available/deneme1.com.conf
Dosyanın aşağıdakine benzer bir dosya olması gerekiyor (Örnekte commentler silinmiştir.)
VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Değiştireceğimiz alanlar aşağıdaki gibidir.
ServerAdmin admin@deneme1.com
ServerName deneme1.com
ServerAlias www.deneme1.com
DocumentRoot /var/www/deneme1.com/public_html
Sırasıyla bu alanlarda belirlediğimiz değerler server yönetici email adresi, server name ile alan adı adresimiz, server alias ile www kayıtlarının da karşılanacağı ve DocumentRoot ilede web dosyalarımızın bulunduğu klasör yolu.
Tüm değişikliklerden sonra dosyamız aşağıdaki gibi görünmeli:
<VirtualHost *:80>
ServerAdmin admin@deneme1.com
ServerName deneme1.com
ServerAlias www.deneme1.com
DocumentRoot /var/www/deneme1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Konfigürasyon dosyamızı kaydedip çıkıyoruz.
Aynı Dosyayı İkinci Virtual Host için Kopyalıyoruz:
sudo cp /etc/apache2/sites-available/deneme1.com.conf /etc/apache2/sites-available/deneme2.com.conf
Yeni dosyamızı root yetkisi ile açıyoruz:
sudo nano /etc/apache2/sites-available/deneme2.com.conf
Dosyamızı deneme2.com alan adına göre güncelliyoruz:
<VirtualHost *:80>
ServerAdmin admin@deneme2.com
ServerName deneme2.com
ServerAlias www.test.com
DocumentRoot /var/www/deneme2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Dosyamızı kaydedip çıkıyoruz.
Beşinci Adım – Virtual Host’ları Aktif Etme
Bu adımda oluşturduğumuz virtual host dosyalarımızı aktif hale getiriyoruz. Bu işlemi gerçekleştirmek için a2ensite komutunu kullanıyoruz:
sudo a2ensite deneme1.com.conf
sudo a2ensite deneme2.com.conf
Ayarların geçerli olması için Apache sunucumuzu yeniden başlatıyoruz:
sudo service apache2 restart
Ve işlemlerimiz tamamlandı. Umarız bu döküman size yardımcı olmuştur. Sorularınız varsa dökümanın altına yorum ekleyerek sorabilirsiniz.