luni, 23 februarie 2009

Configurare lighttpd cu vhosts

Articolul următor face parte dintr-o colecție de articole menită să ofere o soluție de hosting web bazată pe vsftpd, lighttpd, PHP și MySQL. În continuare, voi explica modul de configurare al lighttpd-ului pentru a suporta site-uri virtuale (vhosts).

De ce lighttpd? "Security, speed, compliance, and flexibility" spun ei pe http://www.lighttpd.net/.

www/lighttpd, ajuns la versiunea 1.4.21, va servi paginile userilor din /home/*/pages/. Integrarea cu PHP-ul va fi discutată în alt articol, ea făcându-se prin FastCGI.

Compilăm lighttpd-ul cu următoarele flag-uri:
BZIP2
OPENSSL

Fișierul de configurare se găsește în /usr/local/etc/ sub numele de lighttpd.conf. Acesta trebuie să conțină lista de module pe care le încărcăm, log-urile și directorul din care servim implicit paginile.

Modulele ce trebuie decomentate sunt:
mod_rewrite
mod_alias
mod_access
mod_simplevhost
mod_expire
mod_accesslog

Ne asigurăm că request-urile pentru vhost-urile pe care nu le-am definit vor fi acceptate si servite din /usr/local/www/data/
server.document-root = "/usr/local/www/data/"

și că log-urile vor merge în /var/log/lighttpd-{error,access}.log
server.errorlog = "/var/log/lighttpd-error.log"
accesslog.filename = "/var/log/lighttpd-access.log"

Ne asigurăm că server-ul rulează ca user-ul si group-ul www
server.username www
server.groupname www

Mai departe, vom defini un vhost pentru mydomain.com, ce va servi atât request-urile pentru http://mydomain.com, cât și request-urile pentru http://subdomain.mydomain.com. Fiecare vhost va avea propriul access.log în directorul /home/myuser/logs/access.log.
mkdir -p /home/myuser/logs
touch /home/myuser/logs/access.log
chown www:www /home/myuser/logs/access.log

La sfârșitul fișierului lighttpd.conf trebuie adăugată o intrare de vhost, asemănătoare cu cea de mai jos:
$HTTP["host"] =~ "(^|\.)mydomain\.com$" {
server.document-root = "/home/myuser/pages/"
accesslog.filename = "/home/myuser/logs/access.log"
}

Atenție, puteți folosi directiva include pentru a ține directivele pentru fiecare vhost într-un fișier de configurare separat.

În final, pornim lighttpd-ul și îl testăm http://mydomain.com. Ar trebui să meargă fără probleme.

0 comentarii: