Kreirajte Apache virtuelne hostove. Rad sa virtuelnim hostovima Kreirajte apache virtuelni host

Ovo je napomena o postavljanju web servera u Windows-u, može se smatrati nastavkom članka "". Materijal je u pripremi, ali kako je zaprimljeno pitanje na koje sadrži odgovor, odlučeno je da se objavi u ovom obliku.

Povezivanje Apache virtuelnih hostova na Windows

Virtuelni hostovi mogu biti vezani za ime hosta (npr. study.loc), IP (npr. 127.0.0.3) i port (*:81). Druga i treća metoda su dobre po tome što ne moramo da se bavimo DNS rezolucijom našeg virtuelnog imena hosta (ovo se obično postiže promenom sistemske datoteke ili korišćenjem ličnog DNS servera sa odgovarajućim zapisima).

Pogledajmo sve tri metode. Ali počnimo s malom pripremom. Kreirajmo direktorij u koji ćemo smjestiti naše virtualne hostove. Na primjer, . I u ovom direktoriju ćemo kreirati tri nova foldera: host1, host2, host3. U svakom od njih kreirajte indeksni fajl ( index.html) sa bilo kojim sadržajem koji bi vam omogućio da prepoznate da ste došli do pravog domaćina. Napravit ću sljedeće unose u odgovarajuće datoteke indeksa hosta, za prvi host:

Došli ste do host1.

za drugo:

Došli ste do host2.

za treću:

Došli ste do host3.

Sada počnimo s konfiguracijom virtualnih hostova.

U fajlu

Komentirajte (ili izbrišite) podrazumevane linije u datoteci.

Virtuelni hostovi zasnovani na IP-u

Virtualni hostovi koji su vezani za IP zahtijevaju više IP adresa. Međutim, na vašem lokalnom serveru možete izvesti ovaj trik, jer u IPv4, 127.0.0.1 također odražava bilo koju adresu između 127.0.0.0 i 127.255.255.255.

Pokušajte da unesete 127.0.0.1 u svoj pretraživač, a zatim pokušajte sa 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5, itd. Kao što vidite, imamo mnogo IP-ova, a virtuelne hostove možete vezati za svaki od njih.

Dodaj u fajl C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf sljedeći redovi:

ServerAdmin [email protected] DocumentRoot "C:/Server/data/htdocs/virthosts/host2/"

Ponovo pokrenite web server (ponovo pokrenite nakon svake promjene konfiguracijske datoteke):

C:\Server\bin\Apache24\bin\httpd.exe -k restart

Istovremeno, naša podešavanja ne utiču na druge IP 127.0.0.*, kao ni na localhost.

Virtuelni hostovi bazirani na portovima (različite stranice na različitim portovima)

Sada dodajte u fajl C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf linije:

Slušaj 81 ServerAdmin [email protected] DocumentRoot "C:/Server/data/htdocs/virthosts/host3/"

Možete promijeniti port na bilo koji drugi koji se ne koristi u vašem sistemu. Također možete odrediti određenu IP adresu umjesto zvjezdice. Ponovo pokrenite i otvorite http://localhost:81 u vašem pretraživaču:

Virtuelni hostovi na osnovu imena hosta

Sljedeća metoda zahtijeva uređivanje datoteke C:\Windows\System32\drivers\etc\hosts(ili napraviti zapis na svom DNS serveru). Zamislite bilo koje ime hosta, po mogućnosti ono koje se ne poklapa sa pravim. Primjeri supersite, study.loc, video.ofme. Uzeću kao primer studija.loc. Otvori datoteku C:\Windows\System32\drivers\etc\hosts i dodaj tamo:

127.0.0.1 studija.loc

I da dospije C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf dodaj redove:

ServerName localhost DocumentRoot "C:/Server/data/htdocs/" ServerName study.loc DocumentRoot "C:/Server/data/htdocs/virthosts/host1/"

Ponovo pokrenite server i u svom pretraživaču idite na:

Poddomene su konfigurisane slično (dir1.study.loc, dir2.study.loc, dir3.localhost, itd.).

Automatsko kreiranje virtuelnih hostova/poddomena

U fajlu C:\Server\bin\Apache24\conf\httpd.conf pronađite i dekomentirajte sljedeći red:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

I također, ako to već niste učinili, linija:

Uključite conf/extra/httpd-vhosts.conf

U imeniku C:\Server\data\htdocs\virthosts\ kreirajte folder localhost(sada će se njegov sadržaj prikazati kada unesete http://localhost u pretraživač).

Za fajl C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf dodajte sljedeći red

VirtualDocumentRoot "C:/Server/data/htdocs/virthosts/%1/"

Ponovo pokrenite server.

Sada bilo koji folder kreiran u C:\Server\data\htdocs\virthosts\ biće dostupni na adresi obrasca

http://ime fascikle.localhost

Konfiguriranje SSL-a za Apache na Windows-u (Migracija sa HTTP-a na HTTPS)

Ako želite da koristite SSL na Apache web serveru pod Windowsom, onda su vam potrebne tri datoteke: *.key, *.csr i *.crt. Ako ste kupili važeći SSL certifikat za svoju stranicu, onda bi vam ove datoteke trebalo poslati nakon kupovine. Možda ih ima više - među njima mogu biti i srednji certifikati.

Ako želite podesiti SSL na lokalnom web serveru, onda sve ove datoteke možete sami generirati, tj. kreirajte samopotpisani certifikat. Ovaj certifikat nije važeći (ne može ga verificirati treća strana), ali za vježbu migracije sa HTTP-a na HTTPS je u redu.

Pretpostavlja se da ste instalirali web server - u suprotnom zamijenite apsolutne putanje svojim.

Otvorite Windows komandnu liniju ( Win+x, a zatim odaberite " Komandna linija"). Na komandnoj liniji unesite naredbe:

Cd C:\Server\bin\Apache24\bin\ set OPENSSL_CONF=C:\Server\bin\Apache24\conf\openssl.cnf openssl.exe genpkey -algoritam RSA -pkeyopt rsa_keygen_bits:2048 -out openq localhost. -novi -ključ localhost.key -out localhost.csr

Kada unesete posljednju naredbu, pojavit će se upiti na engleskom. Slijedi njihov prijevod.

Od vas će se tražiti da unesete informacije koje će biti uključene u vaš zahtjev za certifikat. Ono što ćete sada unijeti je ono što se zove Distinguished Name ili DN. Ima dosta polja, ali možete ostaviti neka prazna. Za neka polja bit će zadana vrijednost, ako unesete ".", polje će ostati prazno. -----

Od vas će se tražiti da unesete informacije koje će biti uključene u vaš zahtjev za certifikat. Ono što ćete unijeti zove se Distinguished Name ili DN. Postoji samo nekoliko polja koja mogu ostati prazna. Neka polja će imati zadane vrijednosti. Ako unesete ".", polje će ostati prazno.

Ime zemlje (2 slova kod):

Dvoslovni naziv zemlje (dvoslovni kod)

Ime države ili pokrajine (puno ime) :

Ime države ili pokrajine/pokrajine (puno ime)

Naziv lokacije (npr. grad):

Naziv lokaliteta (npr. grad)

Naziv organizacije (npr. kompanija):

Naziv organizacije (tj. kompanije).

Naziv organizacione jedinice (npr. sekcija):

Organizaciona jedinica (tj. odeljenje)

Uobičajeno ime (npr. FQDN servera ili VAŠE ime):

Uobičajeno ime (na primjer, FQDN servera ili VAŠE ime). Možete unijeti localhost.

E-mail adresa :

Poštanska adresa

Molimo unesite sljedeće "dodatne" atribute koji će se poslati uz vaš zahtjev za certifikat. Lozinka za izazov: Neobavezno ime kompanije:

Molimo unesite sljedeće "opcione" atribute koje ćete poslati uz zahtjev za certifikat

  • Zatraži lozinku:
  • Opciono ime kompanije:

Sada pokrenite naredbu:

Openssl.exe x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt

Kao rezultat, tri nove datoteke bi se trebale pojaviti u direktoriju C:\Server\bin\Apache24\bin\:

  • localhost.key
  • localhost.csr
  • localhost.crt

Od njih nam trebaju samo dva:

  • localhost.key
  • localhost.crt

Kada koristite certifikate za postavljanje prave web stranice, praktičnije je kreirati virtualni host sa sljedećim postavkama:

ServerName www.example.com SSLEngine na SSLCertificateFile "/path/to/www.example.com.crt" SSLCertificateKeyFile "/path/to/www.example.com.key"

Slijedite upute u nastavku da biste konfigurirali SSL na vašem lokalnom Apache web serveru na Windowsu.

U katalogu C:\Server\ kreirajte novi folder certs i premjestiti datoteke tamo localhost.key I localhost.crt.

U imeniku C:\Server\bin\Apache24\conf\ otvorite datoteku u uređivaču teksta httpd.conf. Na samom dnu dodajte sljedeće redove:

LoadModule ssl_module modules/mod_ssl.so Slušaj 443 DocumentRoot "c:/Server/data/htdocs/" Ime servera localhost:443 ServerAdmin [email protected] ErrorLog "$(SRVROOT)/logs/error-ssl.log" TransferLog "$(SRVROOT)/logs/access-ssl.log" SSLEngine na SSLCertificateFile "C:\Server\certs\localhost.crt" SSLCertificateKey:\File " Server\certs\localhost.key"

Imajte na umu da ćete možda morati urediti sljedeće direktive

  • DocumentRoot- odredite putanju do lokacija na serveru
  • ServerName- navedite ime vašeg hosta, ako nije localhost

Imajte na umu da ove linije nismo samo stavili u konfiguracioni fajl, već smo ih umotali u kontejner virtuelni host. Činjenica je da ako se to ne uradi, onda direktiva SSL motor uključenće omogućiti SSL za cijeli web server, pa čak i ako pokušate da otvorite stranice na portu 80, ove veze će se tretirati kao HTTPS, što će uzrokovati „Loš zahtjev. Vaš pretraživač je poslao zahtjev koji ovaj server nije mogao razumjeti." Iz tog razloga, ove postavke su smještene u virtualni host kontejner. Imajte na umu da se koristi ključna riječ _default_ - to jest, svi zahtjevi na portu 443 će biti prikupljeni ovdje ako nisu namijenjeni drugom hostu koji je također konfigurisan. Odnosno, ako želite, možete kreirati više virtuelnih hostova koji će raditi sa HTTPS-om, dok umjesto _zadano_ navedite IP ili karakter hosta * (zvijezda).

Nakon toga sačuvajte promjene, zatvorite datoteku i ponovo pokrenite web server.

Za provjeru izvršenih promjena idite na adresu (HTTPS protokol). Pošto je certifikat samopotpisan, pojavit će se sljedeća poruka:

Samopotpisani certifikati nisu pouzdani i ova greška se ne može ukloniti bez dodavanja takvih certifikata pouzdanim certifikatima. Kliknite na "Ipak nastavi" da nastavite.

Možete dobiti stvarno važeće certifikate za svoje stranice (uključujući besplatne za bilo koji vremenski period).

.bat fajl za upravljanje serverom (instalacija servera, pokretanje, ponovno pokretanje, itd.)

Kreirajte fajl RUN.bat i kopiraj u njega:

Proširiti

:start @ECHO OFF TITLE Upravljanje lokalnim Apache serverom %TIME:~0.8% %DATE% echo Autor: Alexey Miloserdov (miloserdov.?p=21 echo ++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ + ECHO ODABERITE ŽELJENU AKCIJU SA SERVEROM: ECHO ====================================== === ====================================== ECHO = 11 - Pokrenite server jednom, bez instalacije = ECHO = 12 - Pokrenite server ako su usluge već instalirane = ECHO = 13 - Ponovo pokrenite server (samo Apache) = ECHO = 14 - Ponovo pokrenite server (Apache + MySQL) = ECHO ========== ==== =============================================== === =============== ECHO = 21 - Instaliranje usluga sa pokretanjem servera = ECHO = 22 - Instaliranje samo servera (bez pokretanja) = ECHO ========= === ================================================ == ================= ECHO = 31 - Server Stop = ECHO ======================== == ================================================= = ==== ECHO = 41 - Zaustavite i uklonite serverske usluge = ECHO === ================================================== = ========================= ECHO = 51 - Pokretanje ApacheMonitor.exe = ECHO =============== = =================================================== ============= ECHO = 61 - Provjerite koji program sluša na portu 80 = ECHO ======================= = =================================================== =====ECHO=71 - Otvorite http://localhost=ECHO=72 - Otvorite folder web lokacija=ECHO ===================== ==== ============================================== ===== == ECHO = 0 - Izlaz = ECHO =========================================== ==================================== eho ++++++ ++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++ ++++++ +++++ set /p ACTIONLEVEL=Unesite broj opcije pokretanja i pritisnite ENTER: ECHO operacija #%ACTIONLEVEL% je u toku! Čekajte... IF "%ACTIONLEVEL%"=="0" (izlaz) IF "%ACTIONLEVEL%"=="11" (CLS echo REZULTAT OPERACIJE: echo +++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++ ECHO ON START /B c:\Server\bin\Apache24\bin\httpd.exe START /B c:\Server\bin\mysql-8.0\bin\mysqld.exe --defaults-file= C: \Server\bin\mysql-8.0\my.ini --samostalna --konzola echo +++++++++++++++++++++++++++++++ ++++ ++++++++++++++++++++++++++++++++++++++++ pauza idi na početak) IF "%ACTIONLEVEL %"=="12 " (CLS echo REZULTAT OPERACIJE: echo +++++++++++++++++++++++++++++++++++ ++++++++ ++++++++++++++++++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k start ECHO Ako nema poruka iznad greške znači da Apache radi net start mysql echo +++++++++++++++++++++++++++++++++++ +++++++++ +++++++++++++++++++++++++++++ pauza idi na početak) IF "%ACTIONLEVEL%"=="13 " (CLS echo REZULTAT OPERACIJE: echo +++++++++++++++++++++++++++++++++++++++++++ +++++++++++ +++++++++++++++++ ECHO ON c:\Server\bin\A pache24\bin\httpd.exe -k restart ECHO Ako nema gore navedenih grešaka, Apache je ponovo pokrenuo echo ++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++ ++++++++++++++++++++++++ +++++++++++++++++++ pauza idi na početak) AKO "%ACTIONLEVEL%"= ="14" (CLS echo REZULTAT OPERACIJE: echo ++++++++ ++++++++++++++++++++++++++++++++++ ++++++++++++++++++++ +++++++++++++ ECHO NA c:\Server\bin\Apache24\bin\httpd.exe -k restart ECHO Ako gore nema poruka o grešci znači da je apache ponovo pokrenut net stop mysql net start mysql echo ++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++ ++++++++++++++++++++++++++++++++++ +++ pauza goto start) IF "%ACTIONLEVEL%"=="21" (CLS echo REZULTAT OPERACIJE: echo ++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++ ECHO ON c:\ Server\bin\Apache24\bin\httpd.exe -k install c:\Server\bin\Apache24 \bin\httpd.exe -k start c:\Server\bin\mysql-8. 0\bin\mysqld --install net start mysql echo ++++++++++++++++++++++++++++++++++++++ ++ +++++++++++++++++++++++++++++++++ pauza idi na početak) IF "%ACTIONLEVEL%"=="22" (CLS echo REZULTAT OPERACIJE : echo +++++++++++++++++++++++++++++++++++++++++++++++ +++ +++++++++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k install c:\Server\bin\mysql- 8.0\bin \mysqld --install echo +++++++++++++++++++++++++++++++++++++++++++ +++++ +++++++++++++++++++++++ pauza idi na početak) AKO "%ACTIONLEVEL%"=="31" (CLS echo REZULTAT OPERACIJE: jeka ++++ ++++++++++++++++++++++++++++++++++++++++++++++++ +++++++ +++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k stop net stop mysql echo +++++++ +++++++ +++++++++++++++++++++++++++++++++++++++++++++ +++++++++ +++ pauza idi na početak) IF "%ACTIONLEVEL%"=="41" (CLS echo REZULTAT OPERACIJE: echo +++++++++++++++ +++++++++++ +++++++++++++++++++++++++++++++++++++++++ ++++++ ECHO ON c:\Server\ bin\Apache24\bin\httpd.exe -k stop c:\Server\bin\Apache24\ bin\httpd.exe -k deinstaliraj net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --ukloni echo +++++++++++++++++++++++ ++ ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ pauza idi na početak) IF "%ACTIONLEVEL%"=="51" (CLS echo REZULTAT OPERACIJE: echo ++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++ +++++++++++++++++++ +++++++++++++++++++++ ECHO ON start c:\Server\bin\Apache24\bin\ ApacheMonitor.exe echo ApacheMonitor.exe radi! jeka +++++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++++++++++++++++ pauza idi na početak) IF "%ACTIONLEVEL%"=="71" (CLS echo REZULTAT OPERACIJE: echo +++++++ ++ ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++ ++++++++ ECHO ON start http://localhost echo +++++++++++++++++++++++++++++ ++++++ ++++++++++++++++++++++++++++++++++++++ idem na početak) IF "%ACTIONLEVEL% "=="72" (CLS echo REZULTAT OPERACIJE: echo ++++++++++++++++++++++++++++++++++++ ++++++++++ +++++++++++++++++++++++ ECHO ON start C:\Server\data\htdocs\ echo ++++ ++++++++++ ++++++++++++++++++++++++++++++++++++++++++ ++++++++++++ +++ idem na početak) IF "%ACTIONLEVEL%"=="61" (CLS echo REZULTAT OPERACIJE: echo +++++++++++++ ++++++++++++++ ++++++++++++++++++++++++++++++++++++++++ ++++++++ ECHO ON za /f "tokeni= 1,2,3,4,5*" %%i u ("netstat -aon ^| findstr ":80" ^| findstr /i slušam" ) do echo %%j %%l & @tasklist | findstr %% m echo ++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++ pauziraj idi na zvjezdicu t) PAUZIRAJ IZLAZ

Sačuvajte i zatvorite datoteku. Pokrenite datoteku dvostrukim klikom. U tom slučaju pojavit će se tekstualni meni za upravljanje web serverom:

Omogućavanje modula za prikaz informacija i statusa servera

Ako želite daljinski pratiti stanje servera (možda pomoću automatiziranih skripti ili programa), onda bi vam moglo biti korisno omogućiti module mod_status I mod_info.

U fajlu C:\Server\bin\Apache24\conf\httpd.conf pronađite i dekomentirajte sljedeće redove:

LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so Uključi conf/extra/httpd-info.conf

U fajlu C:\Server\bin\Apache24\conf\extra\httpd-info.conf promijenite date linije (ili ih samo obrišite i zamijenite ih predloženim) da dobijete:

SetHandler status servera Zahtijeva host localhost Zahtijeva ip::1 SetHandler server-info Zahtijeva host localhost Zahtijeva ip::1

Dekomentiraj liniju:

Prošireni status On

Ponovo pokrenite server.

Sada, kada pristupate http://localhost/server-info i http://localhost/server-status, moći ćete vidjeti informacije i status servera u stvarnom vremenu.

Apache web server je najpopularniji način za hostovanje web sadržaja na Internetu. Više od polovine svih aktivnih sajtova širom sveta ga koristi, jer je Apache izuzetno moćan i fleksibilan alat za hostovanje web sadržaja.

Apache je podijeljen u zasebne blokove, od kojih je svaki odgovoran za svoj specifični zadatak i može se konfigurirati nezavisno od ostalih blokova. Osnovna jedinica odgovorna za organizovanje korišćenja domena na vašem serveru se zove virtuelni host.

Virtuelni host omogućava administratoru da hostuje više domena ili sajtova na jednom serveru i jednoj IP adresi. Ovo je relevantno za one koji žele da hostuju više lokacija na jednom VPS-u.

Svaka domena koju postavite imat će svoj zasebni direktorij na vašem serveru, a posjetitelji koji dođu na vašu stranicu preko različitih domena nikada neće preći i neće ni znati da se na ovoj IP adresi nalazi bilo koja druga stranica. Ova šema može uključivati ​​neograničen broj domena, poddomena i lokacija na njima, mogućnosti su ograničene samo snagom hardvera na kojem je instaliran Apache.

U ovom članku ćete naučiti kako da podesite virtuelne hostove na Ubuntu 16.04 sistemu i pružite različite sadržaje različitim korisnicima na osnovu domena koji su uneli u adresnu traku.

Trening

Prije nego počnete slijediti korake u ovom članku, toplo se preporučuje da kreirate korisnika s Root privilegijama ako to već niste učinili. Kako to učiniti možete pročitati u ovom članku slijedeći korake 1-4.

Osim toga, morate imati instaliran Apache2 web server. Ako već niste, instalirajte ga tako što ćete pokrenuti sljedeće naredbe:

sudo apt-get update sudo apt-get install apache2

Nakon što završimo gore navedene korake, možemo početi.

Radi jasnoće, ovaj vodič će kreirati virtuelne hostove za domene example.com i test.com. U cijelom članku, ove domene će se koristiti u svim naredbama i konfiguracijskim datotekama, ali kada konfigurirate svoj server, morat ćete zamijeniti ove dvije domene onima koje želite koristiti.

Ako još nemate domene ili iz nekog razloga ne želite da ih povežete sa svojim VPS-om, šesti korak ovog vodiča sadrži upute o tome kako možete oponašati korištenje domena koristeći hosts datoteku.

Prvi korak - Kreirajte stablo imenika

Prva stvar koju treba da uradite je da pripremite direktorijume za svoje domene. Apacheov korijenski direktorij je /var/www i ovdje ćemo kreirati direktorije za svaki od domena koje želimo koristiti. U svakom od ovih direktorija kreirat ćemo public_html folder u koji ćemo smjestiti datoteke naše stranice.

Za domene navedene kao primjer, naredbe za kreiranje direktorija će izgledati ovako:

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

Domeni koje ćete opsluživati ​​sa svojim VPS-om su označeni crvenom bojom.

Drugi korak - Dodjela dozvola

Napravili smo strukturu direktorija za naše domene, ali u ovoj fazi, samo root korisnik ima pristup ovim direktorijima. Ako želimo da običan korisnik može mijenjati datoteke, moramo postaviti dozvole pokretanjem sljedećih naredbi:

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

Varijabla $USER je postavljena na korisničko ime na koje ste trenutno prijavljeni odmah nakon pritiska na tipku Enter. Dakle, nakon izvršenja ovih naredbi, našem trenutnom korisniku se dodjeljuje vlasnik public_html direktorija u koje ćete pohranjivati ​​sadržaj svojih stranica.

Pored potpunih prava pristupa za trenutnog korisnika, morate se pobrinuti da sve vaše web mape budu otvorene za čitanje "za svakoga", to je neophodno za ispravnu obradu zahtjeva i prikazivanje stranica:

sudo chmod -R 755 /var/www

Sada naš server ima potrebna prava pristupa za prikazivanje sadržaja posjetiteljima, a naš korisnik može kreirati i modificirati ovaj sadržaj u direktorijima.

Treći korak - Kreirajte probne stranice za svaki virtuelni host

Napravili smo strukturu direktorija i konfigurirali dozvole za njih. Vrijeme je za objavljivanje sadržaja.
U ovom trenutku, samo trebamo biti sigurni da je sve postavljeno i radi kako treba, tako da ćemo se držati jednostavnih index.html datoteka za svaki host.
Počnimo s example.com. Možete kreirati index.html i otvoriti ga u uređivaču teksta pokretanjem naredbe:

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

Unutar ovog fajla postavićemo mali html kod, zahvaljujući kojem možemo shvatiti da smo došli na sajt koji nam je potreban. Na primjer ovako:

Dobrodošli na Example.com!

Working! Virtualni host example.com je ispravno postavljen!



Sačuvajte i zatvorite datoteku.
Napravimo kopiju novokreirane datoteke kako bismo je koristili kao osnovu za sličnu datoteku domene test.com:

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

Otvorimo kopiju datoteke i promijenimo nekoliko vrijednosti u njoj:

Nano /var/www/test.com/public_html/index.html Dobrodošli na Test.com!

Working! Virtuelni host test.com je ispravno postavljen!



Sačuvajte i zatvorite datoteku. Sada imamo stranice za testiranje rada virtualnih hostova.

Četvrti korak – Kreiranje konfiguracijskih datoteka virtualnog hosta

Konfiguracijske datoteke virtualnog hosta su datoteke koje određuju kako bi se Apache trebao ponašati kada upućuje zahtjeve različitim domenima.
Podrazumevano, Apache već ima jednu takvu datoteku, 000-default.conf , možemo je koristiti kao uzorak i početnu tačku.
Moramo da kopiramo 000-default.conf za prvi domen, prilagodimo ga našim potrebama, a zatim kopiramo već izmenjeni fajl i konfigurišemo ga za drugi domen, uz manja podešavanja. Vrijedi napomenuti da se sva imena konfiguracijskih datoteka virtualnog hosta u Ubuntu-u moraju završavati sa .conf

Kreirajmo prvi konfiguracijski fajl

Počnimo s kopiranjem datoteke 000-default.conf za našu prvu domenu:

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

Otvorite novu datoteku u uređivaču teksta s privilegijama root korisnika:

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

Trebali biste vidjeti nešto poput sljedeće slike (komentari su uklonjeni iz datoteke radi jasnoće):

ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log u kombinaciji

Kao što vidite, struktura konfiguracije je prilično jednostavna. Promijenit ćemo nekoliko postavki i dodati nekoliko naših tako da ovaj fajl opisuje našu prvu domenu. Zahvaljujući ovoj datoteci, svi zahtjevi primljeni na portu 80, standardnom portu za HTTP zahtjeve, bit će obrađeni.

Prvo, promijenimo parametar ServerAdmin, stavimo tamo adresu e-pošte na koju će administrator stranice primati poruke:

ServerAdmin [email protected]

Nakon toga morate dodati dva parametra. Prvi, ServerName , definira domenu za koju će ovaj virtualni host rješavati zahtjeve. Drugi, ServerAlias, definira alternativna imena za vašu web lokaciju koja će se tretirati kao i glavni domen. Ovo je korisno, na primjer, za uparivanje vaših primarnih i www.*** domena.

ServerName example.com ServerAlias ​​www.example.com

Posljednja stvar koju trebamo promijeniti u osnovnoj konfiguracijskoj datoteci je postavka DocumentRoot, koja definira lokaciju direktorija iz kojeg će se naša stranica učitavati. Već ste kreirali potrebne direktorije u prvom koraku našeg vodiča, pa hajde da upišemo željenu adresu u datoteku:

DocumentRoot /var/www/example.com/public_html

Nakon manipulacija, naš fajl bi trebao izgledati otprilike ovako:

ServerAdmin [email protected] 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 kombinovan

Sačuvajmo i zatvorimo.

Kopirajte prvi virtuelni host i konfigurišite ga za rukovanje drugom domenom

Sada kada je prva konfiguraciona datoteka spremna, možemo je kopirati i postaviti za drugu domenu.

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

Otvorimo novi fajl sa root privilegijama:

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

Sada moramo promijeniti sve postavke, konfigurirajući ih za drugu domenu. Trebalo bi ispasti otprilike ovako:

ServerAdmin [email protected] 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 kombinovan

Kada završite, sačuvajte i zatvorite datoteku.

Peti korak - Aktiviranje virtuelnih hostova

Sada kada smo kreirali konfiguracijske datoteke hostova, moramo ih aktivirati. Apache ima nekoliko alata koji vam omogućavaju da izvršite operacije aktivacije i deaktivacije hosta.

Koristite a2ensite alat da aktivirate svoje hostove. Primjer upotrebe:

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

Nakon izvršenja ovih naredbi, morate onemogućiti standardni host:

sudo a2dissite 000-default.conf

Morate ponovo pokrenuti Apache da bi promjene stupile na snagu:

sudo systemctl restart apache2

Za ponovno pokretanje možete koristiti i drugu naredbu:

sudo service apache2 restart

Ova komanda će također raditi, ali možda nećete dobiti rezultate ako je isprobate na drugim distribucijama osim systemctl .

Šesti korak – Podešavanje fajla Hosts (opciono)

Ako ste postavili svoje virtuelne hostove za domene iz stvarnog života i postavili DNS tako da se zahtjevi za domene preusmjeravaju na vaš server, onda je sve u redu. Ako još nemate domene, ili ako iz nekog razloga još ne želite da ih priključite na svoj server, možete koristiti hosts fajl vašeg lokalnog računara da simulirate navigaciju kroz ispravnu domenu za testiranje virtuelnog hosta.
Kada slijedite dolje navedene korake, zahtjevi za određene domene sa vašeg lokalnog računara će biti presretnuti i prisilno preusmjereni na ip adresu vašeg VPS-a, zaobilazeći DNS servere. U tom slučaju će se podaci o preusmeravanju obrađivati ​​isključivo za vaš lokalni računar, što je vrlo zgodno za testiranje različitih sistema u fazi kreiranja sajta, uključujući testiranje virtuelnog hosta.

Uvjerite se da postavljate lokalni računar, a ne VPS. Morate imati administratorska prava ili morate znati lozinku za administratorski nalog da biste izvršili promjene u datoteci hosts. Ako koristite Linux ili Mac operativni sistem, pokrenite sljedeću naredbu:

sudo nano /etc/hosts

Ako koristite Windows operativni sistem, datoteku hosts pronaći ćete na:

C:\Windows\System32\drivers\etc\hosts

U Windowsu, ova datoteka je skrivena i predstavlja sistemsku datoteku, možda ćete morati da omogućite prikaz skrivenih i sistemskih datoteka u postavkama fascikle.

Morate dodati domene korištene u ovom vodiču i javnu IP adresu vašeg VPS-a u datoteku. Za domene koje sam koristio, pod pretpostavkom da je moja VPS IP adresa 111.111.111.111, unosi za dodavanje bi izgledali ovako:

127.0.0.1 lokalni host 111.111.111.111 example.com 111.111.111.111 test.com

Sačuvajte i zatvorite datoteku. Sada će svi zahtjevi za domene example.com i test.com biti automatski preusmjereni na naš VPS 111.111.111.111 i tretirani od strane virtualnih domaćina kao da koristimo stvarne domene.

Korak sedam - Provjera funkcionalnosti

Sada je sve postavljeno i možete provjeriti rad virtualnih hostova unosom examle.com u adresnu traku vašeg pretraživača. Ako je sve u redu, videćete sledeću stranicu:

Slično, kada upitate domenu test.com, vidjet ćete odgovarajuću stranicu:

Ako se obje stranice otvore normalno, možemo pretpostaviti da su dva virtuelna hosta konfigurirana i ispravno rade na vašem serveru. Ako ste izvršili promjene u datoteci hosts, možete ih izbrisati kako ne biste zatrpali sistemske postavke nepotrebnim informacijama.

Zaključak

Ako ste pažljivo pratili sve tačke u ovom vodiču, onda je vaš server uspešno konfigurisan za rad sa dva virtuelna hosta. Možete nastaviti i, ponavljajući sve tačke, dodati onoliko domena koliko smatrate potrebnim. Ne budite sramežljivi, Apache nema softverska ograničenja u pogledu broja virtuelnih hostova, broj domena i sajtova kojima server može da rukuje ograničen je samo tehničkim mogućnostima hardvera na kojem je Apache instaliran.

Pozdrav svim čitaocima blogova, u ovom članku ću opisati proces postavljanja virtuelnih hostova u Apache-u na Ubuntu 14. Mislim da se opisani koraci mogu primijeniti i na raniju/noviju verziju Ubuntua.

Uvod

Zatim ćemo razmotriti stvaranje virtuelnog hosta za ime domene. example.com. Za ćiriličke domene, trebate prevesti naziv domene u punycode, na primjer, koristeći ovaj servis:

Korak 1. Kreirajte strukturu direktorija

U ovoj fazi morate kreirati strukturu direktorija koja sadrži podatke o web lokaciji koji će biti prikazani korisnicima.

Naš korijenski direktorij (ili korijen dokumenta) će biti postavljen da koristi direktorije unutar direktorija /var/www. Ovdje ćemo kreirati direktorij za virtualni host example.com koje planiramo prilagoditi. Također ćemo kreirati ugniježđeni direktorij public_html, koji će sadržavati datoteke stranice.

Kreirajte potrebne direktorije sa sljedećom naredbom:

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

Korak 2. Dodijelite prava pristupa

Sada imamo strukturu direktorija za datoteke web mjesta, ali ti direktoriji su u vlasništvu root korisnika. Ako želimo da redovni korisnici mogu mijenjati datoteke u web direktoriju, onda možemo promijeniti njihovog vlasnika pomoću sljedeće naredbe:

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

Varijabla $USER sadrži korisničko ime pod kojim ste trenutno prijavljeni. Trenutni korisnik sada posjeduje public_html direktorij u koji ćemo pohraniti datoteke stranice.

Također morate urediti dozvole kako biste bili sigurni da je dozvoljen pristup za čitanje zajedničkom web direktoriju i svim datotekama i mapama koje sadrži. Ovo je neophodno kako bi se stranice stranice ispravno prikazivale:

sudo chmod -R 755 /var/www

Vaš web server bi sada trebao imati dozvole koje su mu potrebne za prikaz sadržaja. Osim toga, sada vaš korisnik ima mogućnost kreiranja sadržaja u potrebnim direktorijima.

Korak 3. Kreirajte demo stranicu za host

Sada kada je struktura direktorija spremna, možemo kreirati neki sadržaj za prikaz posjetiteljima stranice. example.com.

Ovo radimo samo radi testiranja, tako da će probna stranica biti vrlo jednostavna.

U folderu public_html domena example.com kreirajte fajl index.php:

Nano /var/www/ example.com/public_html/index.php

U ovoj datoteci, napravimo jednostavnu PHP skriptu kako bismo bili sigurni da sve radi:

Kada završite, sačuvajte i zatvorite datoteku. Sada imamo stranicu koja nam je potrebna da provjerimo konfiguraciju virtuelnog hosta.

Korak 4. Kreirajte virtuelni host fajl

Datoteke virtualnog hosta definiraju svoju konfiguraciju i određuju kako će Apache web server odgovoriti na zahtjeve različitih domena.

Podrazumevana Ubuntu konfiguracija zahteva da svaki virtuelni host fajl završava ekstenzijom .conf. Podrazumevano, Apache ima virtuelni host fajl 000-default.conf, koju možemo koristiti kao polaznu tačku. Kopirajte ovaj fajl da kreirate virtuelni host fajl za našu domenu na osnovu njega example.com.

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

Otvorimo ovu novu datoteku u root editoru:

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

Fajl će imati nešto ovako:

ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log u kombinaciji

Prije svega, moramo promijeniti direktivu ServerAdmin na adresu e-pošte na koju će administrator stranice primati e-poštu.

ServerAdmin [email protected]example.com

Zatim moramo dodati dvije nove direktive. prvo, ServerName, postavlja primarni domen, koji mora odgovarati imenu virtuelnog hosta. Ovo mora biti ime vaše domene. Sekunda, ServerAlias, definira druga imena koja treba tumačiti kao da je primarni domen. Ovo je korisno za korištenje dodatnih imena domena, na primjer korištenje www:

ServerName example.com ServerAlias www.example.com

Jedina stvar koju treba promijeniti u osnovnoj datoteci virtuelnog hosta je lokacija korijenskog direktorija ove domene. Već smo kreirali traženi direktorij, tako da sve što trebamo učiniti je promijeniti direktivu DocumentRoot tako da se odnosi na direktorij koji smo kreirali:

DocumentRoot /var/www/ example.com/public_html

Naš virtuelni host fajl bi sada trebao izgledati ovako:

ServerAdmin [email protected] 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 u kombinaciji

Sačuvajte i zatvorite datoteku.

Korak 5. Omogućite novi virtuelni host

Sada kada smo kreirali virtuelni host fajl example.com, morate aktivirati stranicu pomoću uslužnog programa a2ensite:

Sudo a2ensite example.com.conf

Kada završite, morate ponovo pokrenuti Apache da bi promjene stupile na snagu:

sudo service apache2 restart

Korak 6. Testiranje rezultata

Sada kada je virtuelni host konfigurisan, možete jednostavno testirati funkcionalnost tako što ćete otići na prethodno konfigurisanu adresu u pretraživaču:

http://example.com

Trebali biste vidjeti sličnu stranicu:

Ako stranica radi, onda ste uspješno konfigurirali virtuelni host na Apache web serveru pod Ubuntu! Apache može upravljati bilo kojim brojem imena domena, tako da možete dodati virtuelne hostove u Apache sve dok vaš server može podnijeti opterećenje.

Ovaj članak opisuje kako kreirati više virtualnih hostova na lokalnom računalu. Webmasteri moraju biti u mogućnosti izvršiti ovu radnju kada razvijaju nekoliko stranica.

Prvo, malo objašnjenje.

Šta je virtuelni host? Ovo je postavka lokalnog web servera gdje web server počinje odgovarati na dato ime, a ne samo na IP 127.0.0.1 ili pseudonim localhost. Odnosno, prilikom postavljanja virtuelnog hosta sa imenom site.ru, lokalni veb server će početi da odgovara na ovaj URL u pretraživaču.

Web server se može konfigurisati sa više naziva sajtova. Tada će web server početi izdavati stranice koje odgovaraju direktoriju u kojem se nalaze podaci za navedeno ime. Na primjer, postoje dva virtualna hosta - site.ru i money.com. Radni direktorij za site.ru je /var/www/site.ru, a za money.com radni direktorij je /var/www/money.com. Ako sada pristupite site.ru u pretraživaču, onda će web server izdavati stranice iz /var/www/site.ru direktorija, a ako pristupite money.com, web server će generirati stranice iz /var/www / imenik money.com. Kako napraviti takvu postavku napisano je u ovom članku.

IN Debian 5.x.x, Apache-2 server je spreman za rad sa virtuelnim hostovima odmah nakon instalacije. Ali konfiguriran za samo jedan (podrazumevani) host, koji je dostupan kao localhost. Da dodate još jednog virtuelnog hosta, uradite sledeće:

1. Dodajte praznu datoteku sa proizvoljnim imenom u /etc/apache2/sites-available direktorij. Radi praktičnosti, bolje je dati ime datoteke koje sadrži ime virtualnog hosta. Na primjer, ako planirate dodati virtuelni host pod nazivom studio.ru, morate navesti ime datoteke studio.ru.conf.

2. U ovu datoteku trebate unijeti (otprilike) sljedeće:

Ime servera studio.ru
ServerAlias ​​www.studio.ru

DocumentRoot "/var/www/studio"


dozvoliti od svih
Opcije+Indeksi

  • ServerName, ServerAlias ​​je URL upisan u pretraživaču na koji ovaj virtuelni host treba da odgovori;
  • DocumentRoot je korijenski direktorij ovog virtualnog hosta;
  • Odjeljak direktorija - postavljanje prava pristupa navedenom direktoriju. U ovom slučaju, prava pristupa korijenskom direktoriju virtualnog hosta su konfigurirana.

Morate obratiti pažnju na parametar odjeljka VirtualHost. Ovdje je napisano kao "*:80". Ali svakako pogledajte fajl /etc/apache2/sites-available/default i pogledajte koji je parametar tamo napisan u istom odeljku VirtualHost. Ako je napisano "*", tada u našoj datoteci moramo napisati i "*".

Drugim riječima, trebate pogledati datoteku /etc/apache2/ports.conf. Tamo trebate pronaći direktivu:

ImeVirtualHost *:80

Koja je vrijednost u ovoj direktivi (ovdje - "*: 80"), takva vrijednost mora biti navedena kao parametar odjeljka VirtualHost u svim datotekama direktorija /etc/apache2/sites-available, inače hostovi neće biti vidljivo.

Česta greška je kada je "*.80" napisano u /etc/apache2/ports.conf, a "*" je napisano u host fajlu u odeljku VirtualHost. Iako maska ​​"*" pokriva masku "*.80", Apache ne razumije ovu notaciju. Sa ovim podešavanjem, Apache server neće pronaći pravi host!

3. Moramo otići u /etc/apache2/sites-enabled direktorij i tamo kreirati simboličku vezu do datoteke koju smo kreirali:

# cd /etc/apache2/sites-enabled
# ln -s /etc/apache2/sites-available/studio.ru.conf studio.ru.conf

4. Morate ponovo pokrenuti Apache sa naredbama:

# /etc/init.d/apache2 stop
Zaustavljanje web servera: apache2 ... čekanje .

# /etc/init.d/apache2 start
Pokretanje web servera: apache2.

u trenutku ponovnog pokretanja, morate pogledati da li se poruke o grešci ili upozorenja pojavljuju na konzoli. U normalno konfigurisanom Apacheu, ne bi trebalo da se izdaju poruke o grešci (pa čak ni upozorenja!).

5. Poslednji korak je da otvorite /etc/hosts fajl i upišete novi red sa sledećim sadržajem:

127.0.0.1 studio.ru

ovo će omogućiti pretraživaču da lokalno pristupi Apacheu umjesto da traži stranicu na internetu.

Sve, konfiguracija je gotova. Nije potrebno ponovno podizanje sistema.

Možete unijeti URL u pretraživač http://studio.ru/index.html, a datoteka bi se trebala otvoriti /var/www/studio/index.html(ako jeste). Tako je odmah jasno da je virtuelni host kreiran i prikazan u pretraživaču. Drugi virtuelni hostovi se dodaju na sličan način.

Nekoliko sajtova, zatim Apache za ove svrhe pruža mogućnost konfigurisanja virtuelnih hostova (virtuelnih hostova). Virtualni domaćini su dvije vrste: virtuelni hostovi zasnovani na imenu, tj. vezano za ime domene, i Virtuelni hostovi bazirani na IP-u, tj. vezan za IP adresu. Virtuelni domaćini prvog tipa koriste različita imena za jednu IP adresu, a drugi tip koristi zasebnu IP adresu za svaku lokaciju. Kreiranje virtuelnih hostova u Apache-u je neophodno ako imate nekoliko lokacija na vašem serveru, a njihova konfiguracija je neophodna za ispravan prikaz svih sajtova.

Najčešća je upotreba virtuelnih hostova zasnovanih na imenu vezanih za jednu IP adresu. Tako je moguće pohraniti više lokacija na jednu IP adresu.

Najlakši način da dodate i zatim konfigurišete Apache virtuelne hostove je da uredite konfiguracionu datoteku web servera, koja ima različita imena i lokacije u zavisnosti od operativnog sistema:

IN crvena kapa/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/ubuntu:

/etc/apache2/apache2.conf

Drugi način prilagođavanja je korištenje vlastitog .conf datoteke koje treba postaviti duž putanje:

IN crvena kapa/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf,

Debian/ubuntu:

/etc/apache2/conf.d/filename.conf.

Obično u konfiguracionoj datoteci httpd.conf ili apache2.conf odjeljak upravljanja virtualnim hostom nalazi se na samom kraju. Da biste dodali virtuelnog hosta, morat ćete otvoriti ovu datoteku i dekomentirati je (ukloniti # ) direktiva ImeVirtualHost *:80(Argument * označava "sva imena hostova"). Ako je način postavljanja konfiguracije u conf.d, tada navedena direktiva ne mora biti dekomentirana, ali bi trebala biti definirana u samoj generiranoj datoteci.

Poslije NameVirtualHost nakon čega slijedi blok VirtualHost *:80. Takvi blokovi su konfiguracija vaših virtualnih hostova. Sve to izgleda ovako:

ImeVirtualHost *:80 AllowOverride All Options All ServerAdmin [email protected] DocumentRoot /var/www/site1.ru Ime servera site1.ru ServerAlias ​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [email protected] DocumentRoot /var/www/site2.ru Ime servera site2.ru ServerAlias ​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Tu se vrše sva podešavanja za virtuelne hostove, kao i omogućavanje ili onemogućavanje određenih opcija.

Pogledajmo pobliže za šta je odgovorna svaka od gore navedenih direktiva.

1. Direktiva ServerAdmin specificira e-mail adresu administratora servera na koju se šalju sva obavještenja od hosta u vezi sa njegovom administracijom.

2. Direktiva DocumentRoot specificira korijenski direktorij sa datotekama web mjesta koje će web server izdati klijentu (pretraživaču).

3. Direktiva ime servera definira ime hosta na čiji zahtjev se trebaju izdati fajlovi koji se nalaze u DocumentRoot-u.

4. Direktiva ServerAlias služi za specificiranje alternativnih imena hosta (aliases, aliases) na koje odgovara.

5. Direktiva ErrorLog specificira datoteke dnevnika grešaka za svaki host, i CustomLog– log fajlove za sve ostalo osim grešaka.

Prije blokova sa virtuelnim hostovima, kao što ste primijetili, postoji još jedan unos:

AllowOverride All

U oznakama sadrži listu direktiva (parametara) koje će biti primijenjene na određeni direktorij, što je naznačeno u početnoj oznaci. U primjeru iznad, ovo je var/www/. Specificirana direktiva allowoverride određuje da li da se koriste fajlovi .htaccess i ako jeste, koje direktive globalnog web servera se mogu nadjačati u takvim datotekama. U gornjem primjeru, vrijednost allowoverride osnovana u Sve, koji omogućava obradu .htaccess datoteka i svih direktiva navedenih u njemu. Postoje i druge moguće vrijednosti:

AuthConfig– omogućava korištenje autorizacijskih direktiva (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, itd.).

FileInfo– dozvoljava upotrebu direktiva koje kontrolišu tipove dokumenata (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, itd.).

Indeksi- omogućava korištenje direktiva za kontrolu indeksiranja direktorija (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, itd.).

limit- Omogućava korištenje direktiva kontrole pristupa (dozvoli, zabrani i naredi).

Opcije- dozvoljava korištenje direktiva pomoću kojih možete kontrolirati specifične karakteristike direktorija (Opcije i XBitHack).

Ovo je jedna od mnogih mogućih direktiva koje možete provjeriti na web stranici programera.

Nakon što snimite promjene u datoteci, potrebno je provjeriti ima li grešaka u novim postavkama. Za izvođenje provjere možete koristiti sljedeće naredbe:

apachectl configtest apachectl -S apachectl -d

Ako je poruka primljena Sintaksa OK“, znači da nema grešaka i da možete ponovo pokrenuti web server kako bi promjene stupile na snagu. To možete učiniti pomoću sljedećih naredbi:

Red Hat/CentOS/Fedora:

servis httpd restart

/etc/init.d/ httpd restart

Debian/Ubuntu:

restart servisa apache2

/etc/init.d/apache2 restart

Nadalje, možete naići na sljedeći problem. Kada se primi zahtjev, Apache prolazi kroz cijelu listu virtuelnih hostova u potrazi za odgovarajućim, a ako ne pronađe podudaranje, vraća prvi host po redu. Kako bi otklonili ovaj problem, stručnjaci su osmislili takozvani stub dio, koji bi trebao biti umetnut prije prve sekcije virtuelni host pravi sajt. izgleda ovako:

ServerName default DocumentRoot /var/www/default

Tako će svi nevažeći zahtjevi biti poslani duž putanje var/www/default, gdje možete kreirati indeksnu stranicu koja će prijaviti loš upit.

Takođe, Apache podrazumevano nema pristup vašim kućnim direktorijumima, već samo direktorijumu /var/www. Ako koristite SElinux na svom serveru, koristite sljedeće naredbe da Apacheu date pristup kućnim direktorijima:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Da bi Apache imao pristup određenom direktoriju, na primjer, do /home/mydir treba koristiti naredbu:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Sa invalidima SELinux Da biste Apacheu dali pristup određenom početnom direktoriju web stranice, morat ćete ručno urediti njegovu konfiguracijsku datoteku ( /etc/httpd/conf/httpd.conf in CentOS/Fedora ili /etc/apache2/apache2.conf in Debian/Ubuntu).

Nakon što otvorite konfiguracijsku datoteku web servera za uređivanje, pronađite liniju DocumentRoot(kada koristite nano editor, može se pronaći pomoću prečice na tastaturi ctrl+w). Zamijenite vrijednost u navodnicima /var/www/html na apsolutnu putanju do matičnog direktorija stranice (na primjer, /home/korisničko ime/site.com). Sačuvajte promjene i izađite iz menija uređivača ( Ctrl+O I Ctrl+X). Ponovo pokrenite Apache.

Ako imate instaliran OS na vašem VPS-u Debian/Ubuntu, zatim uredite liniju DocumentRoot potrebno u fajlu /etc/apache2/sites-available/default. Otvorite ga za uređivanje i zamijenite zadanu vrijednost /var/www do apsolutne putanje do matičnog direktorija stranice. Ponovo pokrenite web server.

Ovim je završena osnovna konfiguracija virtuelnih hostova.