Cum Setam "Virtual Hosts" in Apache pe Ubuntu 16.04

Blog: OS
Server-ul web Apache este cea mai populara cale de a oferi continut web pe internet. Numara mai mult de jumatate din site-urile active de pe internet fiind extrem de puternic si flexibil.

Introducere

Server-ul web Apache este cea mai populara cale de a oferi continut web pe internet. Numara mai mult de jumatate din site-urile active de pe internet fiind extrem de puternic si flexibil.

Apache isi imparte functionalitatea si componentele in unitati individuale personalizate si configurate independent. Unitatea de baza care descrie un site individual sau un domeniu este numit virtual host.

Aceasta caracteristica permite administratorului sa foloseasca un server pentru mai multe domenii sau site-uri pe o singura interfata sau IP folosind un mecanism de potrivire. Acest lucru este relevant pentru persoanele care gazduiesc mai mult de un site pe un singur VPS.

Fiecare domeniu care este configurat va directiona vizitatorul catre un director care pastreaza informatiile site-ului, fara a spune ca acelasi server este responsabil si cu alte site-uri. Acest sistem este extensibil fara limita de software, in masura in care serverul poate suporta sarcina.

In acest ghid, o sa vorbim despre cum sa setam  Apache virtual hosts pe server VPS cu Ubuntu 16.04. in timpul acestui proces, o sa invatam cum sa oferim continut variat diferitilor vizitatori indiferent de domeniile solicitate.

Conditie prealabila

Inainte de a incepe acest tutorial, ar trebui sa creati un utilizator non-root asa cum este descris aici in pasii 1-4.

De asemenea trebuie sa aveti instalat Apache pentru a putea parcurge acesti pasi. Daca nu ati facut inca acest lucru, puteti instala Apache pe server prin apt-get:

sudo apt-get update
sudo apt-get install apache2

Dupa ce acesti pasi sau finalizat, putem incepe.

In scopul acestui ghid, vom face un domeniu virtual example.com si un altul test.com. La acestea vom face referire de-a lungul ghidului, dar puteti sa substituiti cu propriile domenii sau valori in timp ce parcurgeti ghidul.

Va vom arata cum sa va editati fisierul de host mai târziu intr-un test de configurare daca folositi valori fictive. Acesta va va permite sa testati configurarea de pe computerul personal, chiar daca continutul nu va fi disponibil pentru alti vizitatori prin intermediul domeniului.

Pasul Unu: Crearea Structurii Directorului

Primul pas pe care il vom face este sa cream structura directorului, care va sustine informatiile de pe site,  care vor folosi vizitatorilor.

Comanda document root (directorul de nivel superior in care Apache cauta continutul pentru a-l oferi) va fi setat pe directoare individuale sub directorul /var/www. O sa cream un director pentru ambele virtual host pe care planuim sa le facem.

Pentru fiecare din acest director o sa cream un folder public_html care sustine fisierele actuale. Acest lucru ne ofera flexibilitate in host.

De exemplu, pentru site-urile noastre o sa facem directoarele in felul urmator:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Cuvintele ingrosate reprezinta numele de domeniul pe care il vom folosi pentru VPS.

Pasul Doi: Obtinerea Permisiunii

Acum avem structura directoarelor pentru fisierele noastre, dar sunt detinute de utilizatorul root. Daca dorim ca utilizatorul obisnuit sa modifice fisiere in directoarele web, putem schimba proprietatea facând aceasta:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

Variabila $USER va lua valoarea utilizatorului care este logat in momentul apasarii tastei Enter. Facând acest lucru utilizatorul obisnuit detine acum subdirectoarele public_html unde se va stoca continutul.

Ar trebui sa modificam permisiunea pentru a ne asigura ca accesul la directorul general, toate fisierele si folderele este permis pentru ca toate paginile sa fie servite in mod corect:

sudo chmod -R 755 /var/www

Server-ul web ar trebui sa aiba permisiunea de care are nevoie sa imparta continutul si utilizatorul ar trebui sa fie capabil sa creeze continut in folderele necesare.

Pasul Trei – Crearea de Pagini Demo pentru Fiecare Virtual Host

Avem structura de directoare setata. Acum este timpul sa cream continut pentru a servi.

Vom face o demonstratie, asa ca paginile noastre vor fi foarte simple. O sa facem o pagina index.html pentru fiecare site. Sa incepem cu example.com. Putem deschide un  fisier index.html in editorul nostru tastând:

nano /var/www/example.com/public_html/index.html

In acest fisier cream un simplu document HTML care sa indice  ca site-ul este conectat. Fisierul va arata in felul urmator:

/var/www/example.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success!  The example.com virtual host is working!</h1>
  </body>
</html>

Salvati si inchideti fisierul când ati terminat.

Putem copia acest fisier pentru a-l folosi ca baza pentru cel de-al  doilea site tastând:

cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Apoi putem deschide fisierul pentru a modifica partile relevante:

nano /var/www/test.com/public_html/index.html
/var/www/test.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Test.com!</title>
  </head>
  <body> <h1>Success!  The test.com virtual host is working!</h1>
  </body>
</html>

Salvati si inchideti fisierul. Acum aveti paginile necesare pentru a testa configurarea virtual host.

Pasul Patru – Crearea Noilor Fisiere de Virtual Host

Fisierele de virtual host care specifica actuala configurare a virtual host si dicteaza cum serverul web Apache va raspunde la multiplele cereri ale domeniului.

Apache vine cu un fisier standard de virtual host numit 000-default.conf pe care il putem folosi ca punct initial. O sa il copiem pentru a crea fisiere virtual host pentru fiecare dintre domeniile noastre.

O sa incepem configurarea cu un domeniu, il vom copia pentru cel de-al doilea domeniu si mai apoi sa il mai ajustam pe unde va fi necesar. Configurarea standard pe care o cere Ubuntu pentru fiecare fisier sa se termine in  .conf.

Crearea Primului Fisier de Virtual Host

Incepem prin a copia fisierul de la primul domeniu:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Deschideti noul fisier in editorul dumneavoastra cu privilegii root:

sudo nano /etc/apache2/sites-available/example.com.conf

Fisierul va arata in felul urmator (Am scos comentariile pentru a face fisierul mai abordabil):

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dupa cum puteti vedea, nu este mare lucru aici. O sa personalizam elementele pentru primul nostru domeniu aici si vom adauga unele directive suplimentare. Aceasta sectiune de virtual host se potriveste oricaror cereri facute pe portul 80, portul implicit pentru HTTP.

Pentru inceput, vom schimba instructiunea ServerAdmin intr-un email prin care administratorul site-ului sa poata primi emailuri.

ServerAdmin admin@example.com

Dupa aceasta va trebui sa adaugam doua instructiuni. Prima este numita ServerName, stabileste domeniul de baza care trebuie sa se potriveasca pentru definitia virtual host. Acesta va fi domeniul dvs. Cea de-a doua instructiune, numita ServerAlias, defineste mai departe numele care ar trebui sa se potriveasca daca ar fi nume de baza. Acesta este folositor pentru a defini potrivirea host ca www:

ServerName example.com
ServerAlias www.example.com

Singurul lucru pe care trebui sa il schimbam este fisierul de baza al virtual host in locatia documentului root pentru acest domeniu. Am creat deja fisierul de care avem nevoie si acum va mai trebui sa modificam instructiunea DocumentRoot pentru a reflecta la directorul creat:

DocumentRoot /var/www/example.com/public_html

Fisierul virtual host ar trebui sa arate asa:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salvati si inchideti fisierul.

Copierea Primului Virtual Host si Personalizarea celui de-al Doilea Domeniu

Acum ca avem primul fisier de virtual host stabilit, il putem crea pe cel de-al doilea prin copierea fisierului si ajustarea lui.

Incepeti prin a-l copia:

sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Deschideti noul fisier cu drepturi root in editorul dvs.:

sudo nano /etc/apache2/sites-available/test.com.conf

Va trebui sa modificati toate informatiile pentru a face referire la cel de-al doilea domeniu. Când ati terminat ar trebui sa arate ceva de genul:

/etc/apache2/sites-available/test.com.conf
<VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salvati si inchideti fisierul când ati terminat.

Pasul Cinci – Activati Noile Fisiere ale Virtual Host

Acum ca am creat fisierele virtual host va trebui sa le activam. Apache include unele metode care ne permit sa facem acest lucru.

Putem a activa fiecare site putem folosi metoda a2ensite:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

In continuare, dezactivati site-ul implicit definit in 000-default.conf:

sudo a2dissite 000-default.conf

Când ati terminat a trebui sa restartati Apache pentru ca aceste modificari sa aiba efect:

sudo systemctl restart apache2

In acest articol veti vedea un exemplu in care vom folosi comanda service:

sudo service apache2 restart

Aceasta comanda va functiona, dar nu va arata iesirea cu care sunteti obisnuiti in alte sisteme din moment ce nu este inconjurat de valoarea systemctl.

Pasul sase – Setarea fisierelor de Local Host (Optional)

In cazul in care nu ati utilizat nume domenii reale pe care le detineti pentru a testa aceasta procedura si ati folosit in schimb exemple de domenii, puteti cel putin testa functionalitatea acestui proces prin modificarea temporara a fisierului hosts pe computerul local .

Acest lucru va intercepta orice cereri pentru domeniile pe care le-ati configurat si le indicati spre VPS, asa cum ar face si sistemul DNS daca ar utiliza domenii inregistrate. Acest procedeu va functiona de pe computer fiind util in scopuri de testare.

Asigurati-va ca operati acesti pasi pe computerul dvs. si nu pe VPS. Va trebui sa cunoasteti parola administrativa sau sa fiti membru al unui grup administrativ.

Daca folositi un computer cu Linux sau Mac, editati fisierul local cu drepturi administrative tastând:

sudo nano /etc/hosts

Detaliile pe care trebuie sa le adaugati sunt adresa IP publica a VPS-ului urmata de domeniul pe care doriti sa il utilizati  pentru a ajunge la VPS.

Pentru domeniul pe care l-am folosit in acest ghid vom presupune ca adresa IP a VPS-ului este 111.111.111.111, si pot adauga urmatoarele linii in partea de jos a fisierului host:

/etc/hosts
127.0.0.1   localhost
127.0.1.1   guest-desktop
111.111.111.111 example.com
111.111.111.111 test.com

Acesta va directiona orice cereri pentru example.com si test.com pe calculatorul nostru si le va trimite server-ului 111.111.111.111. Aceasta este ceea ce ne dorim, in cazul in care nu suntem de fapt proprietarii acestor domenii pentru a testa virtual host.

Salvati si inchideti fisierul.

Pasul sapte – Testarea Rezultatelor

Acum ca aveti configurata virtual host, puteti testa setarile usor accesând domeniile configurate in browser-ul dvs. web:

http://example.com

Veti vedea o pagina care arata ca aceasta:

De asemenea, va puteti vizita si cea de-a doua pagina:

http://test.com

O sa vedeti fisierul creat pentru cel de-al doilea site.

Daca ambele site-uri functioneaza, atunci ati configurat cu succes doua virtual host pe acelasi server.

Daca ati ajustat fisierul de host de pe computerul de acasa,  veti dori sa stergeti liniile adaugate acum ca ati verificat functionarea configurarii. Acest lucru va preveni ca fisierele de host sa umple intrari inutile.

Daca doriti sa accesati acesta pe termen lung, trebuie sa alegeti un nume de domeniu pentru fiecare site si sa il setati pâna in VPS.

Concluzii

Daca ati parcurs intregul articol, ar trebui sa aveti un server cu doua domenii separate. Completati acest proces urmând paşii pe care i-am subliniat mai sus pentru a face alte virtual host.

Nu exista nici o limita de software privind numarul de domenii de care Apache se poate ocupa, asa ca puteti face oricâte domenii poate suporta server-ul dvs.

 

Din aceeasi categorie

Te muti la noi?

Ai gratuit transfer fisiere, import baze de date, transfer adrese de email si configurarea acestora !