Apache virtualių hostų sukonfigūravimas leidžia naudoti kelias skirtingas svetaines viename serveryje be serverio valdymo pulto. Naudojant virtualius hostus galite nurodyti kiekvienai svetainei skirtingas direktorijas, sukurti atskirus saugumo nustatymus, skirtingus SSL sertifikatus ir pan.
Šioje pamokoje nurodysime, kaip susikonfigūruoti Apache virtualius hostus CentOS 7 operacinę sistemą naudojančiame serveryje.
0. Preliminarūs reikalavimai:
* Serverio nuomos paslauga naudojnati mūsų parengtą CentOS 7 šabloną.
* Domenas nukreiptas į Jūsų turimą serverį;
* Įdiegta
Apache tarnyba. Tai galite atlikti pagal šią
instrukciją.
1. Direktorijų struktūros sukūrimas:
DocumentRoot direktorija yra skirta svetainėms failais. Serveris žino, kad šioje direktorijoje turi būti saugomi svetainės failai ir kreipia užklausas gaunamas HTTP protokolu į šią direktoriją. Galite nustatyti, kokią tik norite direktoriją, kaip pagrindinę. Žemiau pateikiame struktūrą, kurią naudosime:
/var/www/
├── pavyzdys.lt
│ └── public_html
├── pavyzdys-1.lt
│ └── public_html
├── pavyzdys-2.lt
│ └── public_html
Kursime skirtingas direktorijas kiekvienam domenui /var/www direktorijoje. Kiekvienoje domeno direktorijoje naudosime public_html katalogą, kuriame bus talpinami svetainės failai. Susikuriame domeno pavyzdys.lt pagrindinę kategoriją naudodami mkdir komandą terminale:
mkdir -p /var/www/pavyzdys.lt/public_html
Testavimui susikuriame index.html failą svetainės pagrindiame kataloge. Atsidarykite teksto redaktorių (nano ar vi) tam, kad galėtumėte įkelti svetainės testinį turinį:
cd /var/www/pavyzdys.lt/public_htmlnano index.html
Ir įkelkite tekstą:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Sveiki atvykę į pavyzdys.lt svetainę</title>
</head>
<body>
<h1>Testas pavyko! Tai yra pavyzdys.lt puslapis!</h1>
</body>
</html>
Visų veiksmų atlikimui naudojome root naudotoją, tačiau jeigu Jūs naudojote kite naudotoją, atlikite teisių suteikimo komandą tam, kad Apache tarnybą galėtų pasiekti šį failą. Taip pat, nustatykite reikiamas failų teises:
chown -R apache: /var/www/pavyzdys.lt
chmod -R 755 /var/www
2. Virtualaus host failo sukūrimas:
Egzistuoja keli skirtingi būdai kaip sukonfigūruoti virtualaus hosto failus. Jūs galite įkelti visų svetainių konfigūraciją į vieną failą arba kiekvienai svetainei naudoti atskirą. Mes rekomenduojame kurti atskirus failus, nes tai palengvina administravimą.
Standartiškai Apache naudoja konfigūracinius failus kataloge /etc/httpd/conf.d/ su .conf plėtiniais. atsidarykite šį katalogą:
cd /etc/httpd/conf.d/
Ir sukurkite failą pavadinimu pavyzdys.lt.conf:
Failo turinys turėtų atrodyti taip:
<VirtualHost *:80>
ServerName pavyzdys.lt
ServerAlias www.
pavyzdys.lt
ServerAdmin webmaster@
pavyzdys.lt
DocumentRoot /var/www/
pavyzdys.lt
/public_html
<Directory /var/www/
pavyzdys.lt
/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/
pavyzdys.lt
-error.log
CustomLog /var/log/httpd/
pavyzdys.lt
-access.log combined
</VirtualHost>
- ServerName - domeno pavadinimas.
- ServerAlias - visi kiti domeno subdomenai.
- DocumentRoot - katalogas, kuriame Apache aptiks domeno failus.
- Options - ši direktyva nurodo, kurios serverio funkcijos yra galimos konkrečiame kataloge.
- Indexes - neleidžia atvaizduoti katalogų sąrašo.
- FollowSymLinks - ši parinktis nurodo Jūsų serveriui laikytis simbolinių nuorodų (angl.
symlink).
- AllowOverride - nurodo, kurios .htaccess faile nurodytos direktyvos gali nepaisyti konfigūracinių direktyvų.
- ErrorLog, CustomLog - nurodo išrašų failų vietą serveryje.
Galite redaguoti failą pagal savo poreikius ir tada išsaugokite. Labai svarbu, kad failo pavadinimas pasibaigtų .conf galūne, nes kitu atveju jis nebus tikrinamas web tarnybos. Toliau patikrinkite failo kodo taisyklingumą:
apachectl configtest
Jeigu nėra klaidų, Jums bus pateikiamas atsakymas:
Tam, kad aktyvuoti naują konfigūraciją, perkraukite Apache tarnybą:
Patikrinkite ar naudojama konfigūracija yra korektiška atsidarant svetainę:
Sėkmės atveju Jums bus pateikimas šis langas:
Ir viskas. Šiuos veiksmus turite atlikti visiems domenams, kuriuos naudosite serveryje. Sėkmės!