Lighttpd Virtual Hosting (vhost) Yapılandırması
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYttoQEP' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Daha önce güzel bir apache alternatifi olan lighttpd'nin kurulum ve yapılandırılması ile alakalı bir iki yazı yayınlamıştım. Ancak o yazılarda vhosts denen virtual hosting (sanal konaklar) ile ilgili herhangi bir yapılandırma işlemine değinmemiştim. Ancak daha öncede değindiğim gibi Lighty artık bir çok web sitesinin yayınlanması için kullanılıyor. (güncel netcraft verilerine göre 840.654). Bu nedenle belki siz de lighttpd'yi birden fazla domain barındırmak üzere yapılandırıp test etmek istersiniz. Dolayısı ile bu yazıda, Lighttp'nin vhosts yapılandırmasından bahsecedeğim… |
Başlamadan Önce
Kurulum konusunda daha önceden değindiğim için burada ayrıca lighttpd kurulumundan bahsetmeyeceğim. Eğer henuz kurmadıysanız aşağıdaki adreslerden yararlanarak kurulumu ve temel yapılandırmayı tamamlayabilirsiniz.
CentOS
http://www.syslogs.org/2010/01/centos-php5-ve-mysql-destekli-lighttpd-kurulumu/
FreeBSD
http://www.syslogs.org/2007/12/lighttpd-mysql-php-eaccelerator-ile-openads-ad-server-kurulumu/
Kurulum ve yapılandırmanız zaten tamamsa bir sonraki başlıktan devam edebilirsiniz.
Lighttpd ve Virtual Hosting
Lighttpd, virtual hosting için mod_simple_vhost isimli modülü kullanmaktadır. Bu modül ana yapılandırma dosyası olan lighttpd.conf içerisinde tanımlanmıştır ama devrede değildir. Dolayısı ile öncelikli olarak bu modülün devreye alınması gerekir:
lighttpd.conf dosyasını editleyin (çoğu linux dağıtımında öntanımlı olarak /etc/lighttpd/lighttpd.conf ‘dir) ve dosya içerisinde aşağıda da görülen mod_simple_vhost satırını bularak satır başındaki # işaretini kaldırarak uncomment out edin.
# "mod_simple_vhost",
Bu küçük değişiklikten sonra lighttpd virtual host tanımlamalarına izin verecektir.
Her bir virtual host tanımlaması için aynı dosya içerisinde “virtual hosts” bölümünde vhostlar için birer hostname tanımı, ilgili hostname'e ait dosyaların tutulacağı document root dizini, log dosyalarının hangi dizinde ve hangi isimle bulunacağına ait error ve access log tanımlamaları yapılır.
Örnek olarak, elimizde test.com ve deneme.com domaininden yayın yapacak ait iki adet web sitesi olduğunu düşünelim; bu siteleri host etmek için yapmamız gereken işlem adımları şunlardır:
Öncelikle, bu web sitelerinin bulunacağı dizinleri oluşturun. Bu örnekte bahsi geçen dizinler (document root) /srv/www/vhosts/ dizini altında bulunacak. Siz istediğiniz bir yerde barındırabilirsiniz.
# mkdir /srv/www/vhosts/test.com # mkdir /srv/www/vhosts/deneme.com
Dizinleri açtıktan sonra, dizin sahibini ve grubunu lighttpd yapıyorum.
# chown lighttpd:lighttpd /srv/www/vhosts/test.com # chown lighttpd:lighttpd /srv/www/vhosts/deneme.com
Dizinleri oluşturduktan sonra lighttpd.conf dosyasının virtual hosts bölümüne aşağıdaki satırları ekliyorum.
test.com için yapılandırma:
$HTTP["host"] =~ "(^|\.)test\.com$" { server.document-root = "/srv/www/vhosts/test.com/" server.errorlog = "/var/log/lighttpd/test.com-error.log" accesslog.filename = "/var/log/lighttpd/test.com-access.log" server.error-handler-404 = "/404.html" }
deneme.com için yapılandırma.
$HTTP["host"] =~ "(^|\.)deneme\.com$" { server.document-root = "/srv/www/vhosts/deneme.com/" server.errorlog = "/var/log/lighttpd/deneme.com-error.log" accesslog.filename = "/var/log/lighttpd/deneme.com-access.log" server.error-handler-404 = "/404.html" }
Böylece bu iki site için virtual hosting yapılandırması tamamlanmış oluyor.
Yukarıdaki conf dosyasına eklenen satırların açıklamaları gayet net anlaşılıyor sanırım; bir tek ilk satır olan hostname'in belirtildiği bölüm ve server.error-handler ifadeleri için kısa bir açıklama yapmak yerinde olacak sanırım.
$HTTP[“host”] =~ “(^|\.)test\.com$” şeklindeki bu regex ifadesi, sonu “test.com” olan herşey manasına gelir, böylece kullanıcı alan adını www'li ya da sadece domain şeklinde yazsa da document root “/srv/www/vhosts/test.com/” olarak set edilir. Ancak bu noktada dikkat edilmesi gereken şey; bir sub domain oluşturup ayrı bir dizinde host etmek istemeniz durumunda conf dosyanıza, bu alt alan adı için de yeni bir tanımlama girmeniz gerekir.
Örnek olarak, mail.deneme.com için, başka bir dizinde host edilmek üzere bir vhost tanımlaması yapmak isterseniz şu tanımlamayı da eklemelisiniz. (Öncesinde virtual host için document root dizinini oluşturmayı unutmayın.)
$HTTP["host"] =~ "mail.deneme.com" { server.document-root = "/srv/www/vhosts/mail.deneme.com/" server.errorlog = "/var/log/lighttpd/mail.deneme.com-error.log" accesslog.filename = "/var/log/lighttpd/mail.deneme.com-access.log" server.error-handler-404 = "/404.html" }
Bu şekilde, browser'a mail.deneme.com yazılırsa document root “/srv/www/vhosts/mail.deneme.com/” olarak set edilecek ve o dizindeki dosyalar sunulacaktır. Onun dışında sonu deneme.com olan tüm domainler için document root “/srv/www/vhosts/deneme.com/” olacaktır.
Son olarak, server.error-handler-404 ifadesi, ilgili sitenin document root'unda bulunmayan içerik için döndürülecek hata sayfasını belirtir. Bu ifadeyi eklemek zorunda değilsiniz ancak özel hata sayfaları yayınlamak istiyorsanız kullanabileceğiniz bir parametredir. Bizim örneğimizde hata sayfası deneme.com/404.html ‘dir.
Son olarak değişikliklerin devreye girmesi için lighty'i yeniden başlatmayı unutmayın.
# /etc/init.d/lighttpd restart
Virtual hosting yapılandırması ile ilgili genel geçer tanımlamalar bunlardan ibaret. Daha fazla bilgi için aşağıdaki adresten yararlanabilirsiniz:
http://redmine.lighttpd.net/projects/1/wiki/Docs:ModSimpleVhost
Bu yazılar da ilginizi çekebilir:
- CentOS üzerine php5 ve Mysql destekli Lighttpd Kurulumu
- Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.
Yorumlar
Trackbacks
Yorumda bulunun.
güzel yazı elinize sağlık.
[Cevapla]
Elinize sağlık, faydalı oldu.
[Cevapla]