Počeli ste da pravite novi sajt i imate problem sa putanjama ka fajlovima. Napravili ste novi poddirektorijum na localhostu i u njega stavili vaš novi projekat. Problem nastaje kad kopirate sve to na internet i tamo ne radi jer ste negde zaboravili da obrišete naziv direktorijuma iz neke putanje. Rešenje je pravljenje VirtualHosta, tj. nove internet adrese koja će biti dostupna samo vama.VirtualHost se pravi u dva koraka. Prvi je odlazak u kreniranje nove VirtualHost sekcije u Apache konfiguracionim fajlovima, a drugi dodavanje novog hiosta u Windowsov hosts fajl.
Prvi korak – VirtualHost
Potrebno je otići u direktorijum u kom se nalaze konfiguracioni fajlovi od Apache servera. U slučaju XAMPP-a, o kojema sam pričao u ovom postu, konfiguracioni direktorijum se nalazi u C:\xampp\apache\conf\extra\. Fajl koji nama treba je httpd-vhosts.conf, i kad ga otvorite u njega treba dodati sledeće redove:
NameVirtualHost * <VirtualHost *> DocumentRoot "/xampp/htdocs" ServerName localhost </VirtualHost> <VirtualHost *> DocumentRoot "/xampp/htdocs/projekat" ServerName projekat </VirtualHost>
Sličan primer se već nalazi u tom fajlu. Prilikom mog prvog kreiranja VirtualHostova sam prevideo sledeću bitnu stvar, a to je da morate imati prvi red, koji je dat u gornjem primeru, NameVirtualHost *, što mi je uzelo dosta vremena da shvatim da je u tom redu problem. Takođe morate imati naveden localhost kao jedan od virtelnih hostova, da bi vam localhost radio normalno kao i do sad.
Putanja na koju DocumentRoot pokazuje i ServerName nisu povezani, tako da za ServerName možete izabrati ime koje hoćete. Kada ste ovo upisali u httpd-vhosts.conf i snimili ga, potrebno je resetovati Apache. To možete preko XAMPP Control panela ili u servisima, ako ste postavili Apache kao servis. Jedna napomena, da bi se server uspešno pokrenuo, direktorijum koji ste naveli u DocumentRoot mora da postoji, inače se Apache neće startovati.
Takođe da napomenem da se direktorijum u kome ćete držati vaš projekat ne mora obavezno nalaziti u htdocs, nego ga možete postaviti u bilo koji proizvoljan direktorijum.
Drugi korak – Hosts
Da bi sve ovo proradilo, i da bi mogli iz browsera da pristupite vašem novom sajtu, potrebno je da podesite hosts fajl (nema ekstenziju). Njegova lokacija je u C:\WINDOWS\system32\drivers\etc\, naravno ako ste instalirali Windows na neku drugu lokaciju potražite ga tamo
Otvorite hosts i na kraj dodajte sledeći red:
127.0.0.1 projekat
Tako će Windows znati IP adresu vašeg novog sajta. Važno je da svaki novi host koji budete dodavali ima navedenu IP adresu (127.0.0.1).
NAPOMENA:
Ako koristite bilo koji 64-bitni Windows (XP, Vista, 7), hosts fajl, nećete videti ako pokušate da mu pristupite iz 32-bitnog programa, kao što je recimo Total Commander. Za potrebe pronalaženja ovog fajla koristite Windows Explorer. Lokacija na kojoj se nalazi hosts fajl je ista kao i za 32-bitni Windows.
Treći korak – httpd.conf
U fajlu httpd.conf koji se nalazi u C:\xampp\apache\conf\, za početak potražite linije sa koje počinju sa user i group.
User daemon Group daemon
Promenite ih tako da umesto daemon, iza user stoji ime koje ste izabrali prilikom instalacije Windowsa, a iza group unesite Administrator (najčešća grupa na kućnim računarima). Sledeći primer je sa mog računara:
User Pedja Group Administrator
Sledeća izmena je da se “olabave” sigurnosna podešavanja. Na ovaj način ne morate da podešavate prava pristupa za svaki direktorijum i VirtualHost koji napravite. Potražite sledeću sekciju (počinje sa <Directory />):
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
i prepravite je da izgleda ovako:
<Directory />
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Za kraj skinite komentar sa linije gde se učitava httpd-vhost.conf, original izgleda ovako:
#Include conf/extra/httpd-vhosts.conf
treba obrisati # na početku reda, i dobićete ovo:
Include conf/extra/httpd-vhosts.conf
NAPOMENA:
Sigurnosna podešavanja koja smo menjali gore ni u kom slučaju ne koristite na produkcionim serverima, ovo je podešavanje samo za vaš lokalni server, da bi smanjili broj problema koji mogu nastati u radu vašeg projekta na lokalu.
Za kraj…
Kad ste sve ovo odradili u vašem browseru je dovoljno da umesto localhost otkucate projekat i pred vama bi trebalo da se učita vaš novi sajt, ako ste ga već smestili u taj direktorijum.
Za dalje proširenje i pravljenje novog VirtualHosta, dovoljno je da napravite novu VirtualHost sekciju, podesite direktorijum i da taj novi host dodate u hosts fajl.
One Response to “Apache VirtualHost”
Aleks
Super tutorial.