apache üzerinde birden fazla alan adı
örnekte site1.com ve site2.com alan adlarna sahip iki sitenin sunucumuz üzerinden yayın yapabilmesi için en basit konfigürasyonun nasıl yapılacağına bakacağız.
apache için öncelikle vhost_alias modülünü aktif edelim.
a2enmod vhost_alias
sitelerin barındırılacağı alanı disk üzerinde belirlememiz bu dizinleri oluşturarak gerekli yetkilendirmeyi yapmamız gerekiyor. alan adlarına ait dosyalar /var/www/sitex.com/public_html olarak barındıracağımızı düşünerek
sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html
sudo chown -R $USER:$USER /var/www/site1.com/public_html
sudo chown -R $USER:$USER /var/www/site2.com/public_html
sudo chmod -R 755 /var/www
gerekli dizinleri ve kullanıcı izinlerini vermiş olduk. şimdi test aşamasında kullanılmak üzere birer adet index.html dosyası oluşturalım. bu en kolay kısmı 🙂
nano /var/www/site1.com/public_html/index.html
site1
site1.com sitemiz başarılı şekilde çalışmaktadır.
nano /var/www/site2.com/public_html/index.html
site2
site2.com sitemiz başarılı şekilde çalışmaktadır.
gerekli index.html dosyasına oluşturduğumuza göre esas konfigürasyona gelebiliriz.
apachenin sites-available altındaki örnek default konfigürasyonuda sitemiz adına uygun olarak kopyalayalım.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site1.com.conf
şimdi konfigürasyon dosyamız üzerinde gerekli değişikleri yapalım.
sudo nano /etc/apache2/sites-available/site1.com.conf
olması gereken minimum konfigürasyon aşagıdaki şekilde yapabiliriz.
ServerAdmin admin@site1.com
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
şimdi aynı işlemi diğer alanımız içinde yapalım…
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site2.com.conf
sudo nano /etc/apache2/sites-available/site2.com.conf
ServerAdmin admin@site2.com
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
şimdi sıra konfigürasyonlarımı aktif etmeye geldi.
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
eğer konfigürasyonumuzda hata yoksa komutları uyguladığımızda
Enabling site site1.com. To activate the new configuration, you need to run: service apache2 reload
şeklinde bir bilgilendirme mesajı alacağız. yönergeyi uygulayarak apache suncumuzu yeniden başlatıyoruz.
sudo service apache2 restart
apache sunucumuzda hata vermez ise yapamız gereken bir tek nokta kaldı. oda hosts dosyasının güncellenmesi. bu işlem sonucunda /etc/apache2/sites-enabled dizini altına konfigürasyon dosyaları kopyalanmış olacaktır.
ferhat@cicek:/etc/apache2/sites-enabled# ls
000-default.conf site1.com.conf site2.com.conf
sudo nano /etc/hosts
hosts dosyasının içine alan adlarımıza ait gerekli satırları ekleyerek işlemimizi tamamlıyoruz.
127.0.0.1 localhost
127.0.1.1 ubuntu
127.0.0.1 site1.com
127.0.0.1 site2.com
yukarıda bahsedilen durumun en temek yöntemlerden biri olduğu tekrarlamakta fayda var. farklı modüller ve yapılarla bu işlem uygulanabilir…