Crearea unui Virtualhost in Apache

apache logo

Crearea unui Virtualhost in Apache

Astazi o sa vorbim putin despre ce este un VirtualHost in Apache si cum sa cream un VirtualHost. Exista pe internet tool-uri ce pot fi folosite, chiar am scris unul pe un alt blog personal unde puteti genera un virtualhost in mod direct. Trebuie sa intelegeti ca in momentul in care doriti sa adaugati un domeniu in contul dvs. de gazduire sau pe un server, pentru ca acesta sa functioneze trebuie sa se creeze un Virtualhost pentru a mapa noul domeniu spre o anumita locatie unde aveti site-ul dvs. Calea sau locatia unde aveti site-ul va fi specificata de catre directiva document_root.

Crearea unui VirtualHost pe linux Debian

O sa incep cu aceast OS pentru ca imi este chiar la indemana, dar o sa trec peste Centos si Windows putin mai taziu. Pe acest sistem de operare, implicit avem o locatie numita

/etc/apache2/sites-enabled/

sau

/usr/local/apache2/sites-enabled/

Depinde de configuratia serverului web, dar in general aceste locatii sunt folosite de catre administratori.

Fiecare domeniu nou e recomandat sa aiba fisier separat de configurare (extensia .conf). Asftel sa zicem ca vrem sa adaugam domeniul trustnetsolutions.ro pe un VPS nou. O sa cream un nou fisier in locatia

/etc/apache2/sites-enabled/trustnetsolutions.ro.conf

Continutul acestui domeniu va fi:

<VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName trustnetsolutions.ro
        ServerAlias www.trustnetsolutions.ro
        DocumentRoot /home/trustnetsolutions.ro/public_html/
        <Directory /home/trustnetsolutions.ro/public_html/>
                Options Indexes FollowSymLinks MultiViews ExecCGI
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Daca va uitati putin, o sa intelegeti usor depre ce e vorba.

Nu uitati ca trebuie sa dati un restart la serverul web ca noul VHOST sa fie incarcat.

/etc/init.d/apache2 restart

Configuratia de mai sus este doar un exemplu, aici putem adauga si alte directive precum user/grup suPHP sau Suexec, mai multe alias-uri si asa mai departe.

Crearea unui VirtualHost pe linux Centos

Pe CentOS continutul fisierului VHOST este aproximativ identic, teoretic configuratiile din VHOST sunt generale indiferent de sistemul de operare. Ce trebuie doar sa aveti grija este la calea unde trebuie adaugat fisier/configuratia VHOST:

/etc/httpd/conf/httpd.conf

Bineinteles, se poate face o directiva noua pentru include fisiere dintr-o alta locatie unde avem separate fisierele VHOST. Dar implicit CentOS preia datele direct din fisierul principal Apache.

Crearea unui VirtualHost pe Windows

Dupa cum am spus mai devreme, singura diferenta dintre sistemele de operare este calea ce trebuie folosita, insa la Windows trebuie sa aveti grija ca sa aveti si in VHOST document_root scris corect. De exemplu:

<VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName trustnetsolutions.ro
        ServerAlias www.trustnetsolutions.ro
        DocumentRoot c:\www\trustnetsolutions.ro\public_html\
        <Directory c:\www\trustnetsolutions.ro\public_html\>
                Options Indexes FollowSymLinks MultiViews ExecCGI
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

In cazul in care vreti sa creati virtualhost pe IP si nu wildcard (cum am facut pana acum), va trebui sa schimbati

<VirtualHost *:80>

in ceva asemanator:

<VirtualHost 25.25.25.25:80>

Deasemenea in apache va trebui setat IP-ul ca fiind NameVirtualHost, de exemplu:

NameVirtualHost 25.25.25.25:80

Daca aveti nelamuriri, lasati un comentariu si va ajut atat atat cat e posibil.