Nedavno sam imao potrebu na jednom serveru postaviti nekoliko Internet stranica. Možda neki (malo manje upućeni) misle da na Internetu vrijedi “1 site = 1 server” no to nije tako. Vrlo često se kod manje zahtjevnih site-ova (koji nemaju previše pageview-ova dnevno) koristi jedan server za nekoliko Internet stranica. Ovdje ću opisati kako na jednostavan način na jedan Apache2 server smjestiti 3 Internet stranice (za primjer ću koristiti domene www.prva.com, www.druga.com i www.treca.hr).
Dakle, imate server na kojem je instaliran Apache i to u verziji 2.x. Ako malo bolje pogledate u direktorij /etc/apache2, vidjet ćete slijedeće:
- apache2.conf datoteku - u njoj se nalazi veći dio konfiguracije Apache web servera
- conf.d direktorij - sve datoteke koje se nalaze u njemu Apache smatra konfiguracijskima i pokušati će ih pročitati kod pokretanja
- httpd.conf - datoteka ovog naziva je u verziji 1.x sadržavala konfiguraciju koja je sad prebačena u apache2.conf. Budući da u njoj vjerojatno nema ništa, a Apache ju po defaultu čita kod pokretanja, možete ju koristiti za vlastitu konfiguraciju Apache-a
- mods-available direktorij - u njemu se nalaze konfiguracijske datoteke modula koji su dostupni za instalaciju (neki su možda već i instalirani)
- mods-enabled direktorij - sadrži soft linkove na konfiguracijske datoteke modula, a ti linkovi se stvaraju automatski kad se modul instalira
- ports.conf datoteka - popis portova na kojima Apache sluša
- sites-available direktorij - u njemu se nalaze konfiguracijske datoteke za svaku web stranicu koja je dostupna Apache-u
- sites-enabled direktorij - sadrži soft linkove na konfiguraciju svake instalirane web stranice
Kreiranje direktorija za svaku stranicu
Prvo ćemo kreirati jedan direktorij u koji ćemo smjestiti sve Internet stranice koje ćemo imati na serveru. Taj direktorij možete kreirati bilo gdje, samo što korisnik pod kojim je pokrenut Apache servis (na nekim distribucijama to je www-data, a na drugima je httpd) mora imati prava za čitanje iz tog direktorija. Ja ću direktorij kreirati u home direktoriju.
mkdir /home/www
Nakon toga kreirajte direktorije za svaku stranicu koju ćete imati, a u svakom direktoriju stranice napravite dodatne direktorije htdocs, logs i cgi-bin.
mkdir /home/www/www.prva.com mkdir /home/www/www.prva.com/htdocs mkdir /home/www/www.prva.com/logs mkdir /home/www/www.prva.com/cgi-bin
mkdir /home/www/www.druga.com mkdir /home/www/www.druga.com/htdocs mkdir /home/www/www.druga.com/logs mkdir /home/www/www.druga.com/cgi-bin
mkdir /home/www/www.treca.com mkdir /home/www/www.treca.com/htdocs mkdir /home/www/www.treca.com/logs mkdir /home/www/www.treca.com/cgi-bin
Naravno, ukoliko ćete imati isti sadržaj za sve stranice (npr. ukoliko imate isti naziv domene, ali različite vršne domene - www.stranica.com, www.stranica.net, www.stranica.org…) nema smisla kreirati različite direktorije nego treba koristiti soft linkove.
Konfiguracija
Nakon što smo kreirali direktorije za svaku web stranicu, moramo u Apache konfiguraciji omogućiti korištenje virtualnih hostova. Najjednostavnije je u direktoriju /etc/apache2/conf.d napraviti datoteku virtual.conf i u nju upisati slijedeće:
NameVirtualHost *
Kao što sam već rekao, Apache prilikom pokretana čita sve datoteke u direktoriju conf.d pa će pročitati i datoteku virtual.conf.
Nakon toga, u direktoriju /etc/apache2/sites-available ćemo kreirati konfiguracijsku datoteku za svaku Internet stranicu. Dakle, u datoteku /etc/apache2/sites-available/www.prva.com upišite slijedeće:
# Prva.com (/etc/apache2/sites-available/www.prva.com) <VirtualHost *> ServerAdmin webmaster@prva.com ServerName www.prva.com ServerAlias prva.com, *.prva.com # Indexes + Directory Root. DirectoryIndex index.html, index.php DocumentRoot /home/www/www.prva.com/htdocs/ # CGI Directory ScriptAlias /cgi-bin/ /home/www/www.prva.com/cgi-bin/ <Location /cgi-bin> Options +ExecCGI </Location> # Logfiles ErrorLog /home/www/www.prva.com/logs/error.log CustomLog /home/www/www.prva.com/logs/access.log combined </VirtualHost>
Nakon toga u istom direktoriju kreirajte još i datoteke www.druga.com te www.treca.com. U njih možete staviti istu konfiguraciju kao i u www.prva.com, samo napravite logične promjene (npr. umjesto Server name www.prva.com upišite Server name www.druga.com te Server name www.treca.com).
Naravno, u svaku od datoteka možete dodati i neki proizvoljni konfiguracijski redak koji će se odnositi samo na tu web stranicu.
Instaliranje internet stranica na serveru
Iako sam ovo poglavlje nazvao instaliranje internet stranica, to je ustvari dozvola korištenja stranice Apache-u.
Da ponovimo - sada imamo 3 stranice koje se još ne koriste jer Apache ne vidi virtualne hostove koje smo definirali. To je zato što se njihova konfiguracija još ne nalazi u direktoriju sites-enabled već samo u sites-available. Pomoću slijedećih naredbi ćemo Apache-u dozvoliti korištenje stranica:
a2ensite www.prva.com a2ensite www.druga.com a2ensite www.treca.com
Ukoliko iz nekog razloga želimo privremeno zabraniti korištenje neke stranice Apache-u, to ćemo napraviti sa naredbom a2dissite:
a2dissite www.druga.com
Nakon što smo sve napravili slijedi ponovno pokretanje Apache servera i to je to.
/etc/init.d/apache2 reload
Korisni linkovi
Još jedna zgodna stvar kod Apache-a je što možete imati mnogo Internet stranica sa istom konfiguracijom. Dobar članak o tome možete pronaći ovdje.
