Apache2 virtualni hostovi ubuntu. Apache virtualni hostovi. Izrada demo stranica za virtualne hostove

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Uvod: postoji konfigurirani web poslužitelj na Ubuntu 14.04 TLS (Apache + MySQL + php + phpmyadmin). Pristupa mu se s računala sa sustavom Windows 7 na sljedeći način:

Iz preglednika - putem IP-a.

Do konzole - putem kita.

Preko ssh - putem winCSP.

Računala na istoj lokalnoj mreži. Sada ću vam reći kako implementirati postavljanje virtualnih hostova u Apacheu.

Tijekom početnog postavljanja, virtualni host je IP adresa samog web poslužitelja. Potrebno je stvoriti novi virtualni host na web poslužitelju s mogućnošću pristupa s različitih strojeva.

Korak 1: Stvorite imenike

Stvorite korijenske direktorije za lokalni host newhost:

sudo mkdir -p /var/www/newhost/public_html

Mapa public_html sadržavat će datoteke novog hosta.

Korak 2: dodijelite prava

Kako bi it korisnik mogao mijenjati datoteke u mapi public_html, pokrenite naredbu:

sudo chown -R it /var/www/newhost/public_html

Za ispravan prikaz stranica stranice, dodijelit ćemo korisniku (već sam ga stvorio) prava pristupa općem web imeniku:

sudo chmod it -R 755 /var/www

Korak 3: Stvorite nove datoteke virtualnog hosta

Datoteka virtualnog hosta definira njegovu konfiguraciju i govori Apache poslužitelju kako da rukuje virtualnim hostom.

Standardna datoteka virtualnog hosta u Apacheu je 000-default.conf./ Kopirajmo je za novi virtualni host:

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

Zatim ga otvorite za uređivanje:

sudo nano /etc/apache2/sites-available/newhost.conf

Radi praktičnosti, uklonit ćemo komentare - sav tekst u retku koji počinje znakom #.

Datoteka će izgledati ovako:

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

Stavimo to u ovaj oblik:

ServerAdmin admin@newhost

ServerName newhost

Server Alias ​​​​www.newhost

DocumentRoot /var/www/newhost/public_html

ErrorLog $(APACHE_LOG_DIR)/error.log

CustomLog $(APACHE_LOG_DIR)/access.log kombinirano

Spremimo i zatvorimo datoteku. Za nano editor, to su naredbe Ctrl+O (spremi) Ctrl+X (zatvori).

Korak 4: Omogućite virtualni host

Da biste omogućili virtualni host, pokrenite naredbu

sudo a2ensite newhost.conf

Zatim ponovno pokrenite Apache

sudo servis apache2 ponovno učitaj

Korak 5: Napravite indeksnu datoteku i provjerite radi li host

Kreirajmo datoteku index.html sa sljedećim sadržajem:

Dobrodošli na newhost!

Uspjeh! Host newhost radi!

Korak 6: Konfigurirajte Localhost datoteku

Otvorite datoteku hosts

sudo nano /etc/hosts

Datoteka će izgledati otprilike ovako

127.0.0.1 lokalni host

127.0.1.1 web poslužitelj

Dodajte liniju

127.0.1.2 novi host

Spremite datoteku.

Provjera funkcionalnosti hosta

curl http://newhost

Ova naredba bi nam trebala dati html kod stranice. Host je uspješno kreiran i radi. Da biste pristupili hostu putem preglednika računala sa sustavom Windows 7, morate dodati u datoteku C:\Windows\System32\drivers\etc

U ovoj bilješci ćemo govoriti o postavljanje Apache virtualnih hostova pod Windowsima. Reći ću vam što su virtualni hostovi i čemu služe. Uključene su detaljne ilustracije.

Virtualni hosting. Osnovni koncepti.

Dakle, prvo morate razumjeti što je virtualni hosting:

Virtualni domaćining je tehnologija koja omogućuje web poslužitelju korištenje više naziva domena na jednom računalu.

Oni. Možda imate nekoliko stranica na računalu kojima možete pristupiti pod različitim imenima.

Virtualni hostovi Postoje 2 vrste:

  • virtualni hostovi na temelju naziva ( na temelju imena);
  • virtualni hostovi temeljeni na IP adresi računala ( temeljen na IP-u).

Koristit ćemo prvu opciju - virtualni hostovi temeljeni na imenu.

Konfiguriranje Apache virtualnih hostova.

Da bismo konfigurirali virtualna računala, moramo dodati nekoliko redaka teksta u Apache konfiguracijsku datoteku. O tome gdje pronaći ovu datoteku i opis njene sintakse možete pročitati u bilješci o postavljanju PHP-a kao Apache modula.

Otvorite ovu datoteku u bilježnici. Tražimo i uklanjamo komentar na početku retka, kao što je prikazano u nastavku:

#Virtualni domaćini
Uključi conf/extra/httpd-vhosts.conf

Ovaj redak uključuje postavke koje su opisane u datoteci conf/extra/httpd-vhosts.conf.

Sintaksa za stvaranje virtualni host temeljen na imenu:


DocumentRoot staza do stranice
Naziv web mjesta ServerName

Datoteka vhosts sadrži primjere. Ne trebaju nam. Jednostavno ih uklonimo i zamijenimo test sljedećim:

#
# Virtualni hostovi
#
# Ovdje možete pročitati više o finom podešavanju virtualnih hostova
#
#

#
# Koristite virtualni hosting temeljen na imenu.
#
ImeVirtualHost *:80

# Ovdje pišemo stazu do datoteka web mjesta (DocumentRoot) i naziv hosta (ServerName)

DocumentRoot iz:/www/test
ServerName test

Sada stvorite mapu na disku C: www i fascikl u njemu test. Imajte na umu da Windows koristi obrnute kose crte, dok konfiguracijska datoteka koristi naprijed /.

Sada morate ponovno pokrenuti Apache kako bi postavke stupile na snagu.

Sljedeći korak je obavijestiti Windows o stvorenim virtualnim hostovima. Da biste to učinili, pronađite datoteku C:/Windows/system32/drivers/etc/hosts. Otvorite ga običnom bilježnicom i tamo dodajte sljedeći redak:

127.0.0.1 je IP adresa vašeg računala. Ovom linijom obavještavamo Windows da se stranica nalazi na ovoj IP adresi test.

Ako stvorite, na primjer, drugi virtualni host, dodajte još jedan redak:

127.0.0.1 ime vašeg virtualnog računala

Sada morate provjeriti jesu li postavke ispravne. Da biste to učinili, stvorite u mapi sa:/www/test datoteka indeks.php i tamo napišite sljedeći kod:

Napišite URL u preglednik http://test. Ako ste sve napravili kako treba, vidjet ćete nešto poput:

Ako ovo niste vidjeli, ne očajavajte - napišite u komentarima. Zajedno možemo riješiti svaki problem 😉

Apache je jedan od najpopularnijih web poslužitelja na svijetu.

Komponente i značajke Apachea odvojene su u zasebne elemente koji se mogu pojedinačno instalirati i konfigurirati. Jedan od osnovnih elemenata odgovornih za pojedine parametre web stranice ili domene je virtualni host.

Virtualni hostovi omogućuju administratoru korištenje jednog poslužitelja za hostiranje više stranica (unutar istog sučelja ili IP adrese). Svaka ovako konfigurirana domena usmjerit će posjetitelja na odgovarajuću stranicu. Broj virtualnih hostova na jednom poslužitelju ograničen je isključivo resursima tog poslužitelja.

Ovaj će vam vodič pomoći u postavljanju virtualnih hostova na vašem namjenskom poslužitelju Ubuntu 16.04, omogućujući vam posluživanje različitih sadržaja ovisno o traženoj domeni.

Zahtjevi

  • Unaprijed konfiguriran poslužitelj Ubuntu 16.04.
  • Ne-root korisnik s proširenim privilegijama.
  • Instalirani web poslužitelj Apache:

sudo apt-get ažuriranje
sudo apt-get instaliraj apache2

Bilješka: Vodič koristi uvjetne domene example.com i test.com; ne zaboravite ih zamijeniti imenom svoje domene.

Ako nemate naziv domene, kraj vodiča pokazuje vam kako testirati postavke s lažnim vrijednostima.

1: Stvaranje strukture imenika

Najprije morate stvoriti strukturu direktorija u koji će biti pohranjeni podaci o web-mjestu.

Korijenski direktorij dokumenta (direktorij koji sadrži sadržaj za Apache) je prema zadanim postavkama /var/www; u njemu morate stvoriti zaseban direktorij za svaki virtualni host. Svaki takav direktorij će sadržavati public_html direktorij, koji će sadržavati potrebne datoteke. To hosting čini fleksibilnijim.

Potrebni direktoriji mogu se stvoriti pomoću sljedećih naredbi:

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

Bilješka: Ne zaboravite uključiti svoje nazive domena u naredbe.

2: Postavljanje dopuštenja

Struktura imenika je spremna, ali svi su u vlasništvu root korisnika. Kako biste omogućili nekorijenskom korisniku da mijenja datoteke web imenika, morate promijeniti dopuštenja za te datoteke pomoću sljedeće naredbe:

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

Varijabla $USER će uzeti ime trenutnog korisnika. Nakon toga, poddirektoriji public_html koji sadrže sadržaj stranice pripadat će trenutnom korisniku.

Također morate promijeniti privilegije i otvoriti web imenik i sav njegov sadržaj za čitanje, inače se stranice neće ispravno prikazivati.

sudo chmod -R 755 /var/www

Sada su sva prava ispravno postavljena; Možete početi stvarati sadržaj u posebnim imenicima.

3: Napravite demo stranice za virtualne hostove

Napravite ispitni sadržaj; Za probno postavljanje hostova bit će dovoljne jednostavne stranice. Jednostavno izradite index.html stranice za svaku web stranicu.

Počnimo s example.com; otvorite datoteku index.html u uređivaču teksta:

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

U ovoj datoteci izradite jednostavan HTML dokument koji označava s kojim je mjestom stranica povezana. U ovom slučaju datoteka izgleda ovako:



Dobro došli na Example.com!




Spremite i zatvorite datoteku.

Zatim možete kopirati ovu datoteku i koristiti je kao predložak za drugu stranicu:

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

Otvorite kopiranu datoteku i napravite odgovarajuće prilagodbe:

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


Dobrodošli na Test.com!



Spremite i zatvorite datoteku. Sada su testne stranice spremne.

4: Stvaranje datoteka virtualnog hosta

Datoteke virtualnog hosta konfiguriraju postavke za pojedinačne stranice i pomažu Apacheu da ispravno odgovori na zahtjeve.

Apache dolazi sa standardnom host datotekom pod nazivom 000-default.conf koja se može koristiti kao predložak. Kopirajte ga kako biste stvorili virtualni host za svaki naziv domene.

Bilješka: Prema zadanim postavkama Ubuntu postavke zahtijevaju da datoteke virtualnog hosta završavaju s .conf.

Prvo kopirajte datoteku za prvu domenu:

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

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

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

Bez komentara, datoteka bi izgledala otprilike ovako:


ServerAdmin webmaster@localhost
DocumentRoot /var/www/html


Kao što vidite, datoteka nije tako velika. Sada trebate unijeti podatke o prvoj domeni i dodati nekoliko direktiva. Ovaj virtualni host će odgovoriti na zahtjeve poslane na standardni HTTP port 80.

Najprije trebate promijeniti direktivu ServerAdmin da biste naznačili adresu e-pošte administratora stranice.

ServerAdmin [e-mail zaštićen]

Nakon ovoga trebate dodati dvije direktive. Prvi je ServerName, koji definira osnovnu domenu kojoj je host namijenjen. Drugi je ServerAlias, koji definira pseudonime domene (na primjer, domena s prefiksom www):

ServerName example.com
Server Alias ​​​​www.example.com

Ostaje napraviti posljednju promjenu u datoteci hosta - označiti mjesto korijena dokumenta ove domene. Navedite prethodno stvoreni direktorij u DocumentRoot:

DocumentRoot /var/www/example.com/public_html

Rezultirajuća host datoteka izgleda ovako:


ServerAdmin [e-mail zaštićen]
ServerName example.com
Server Alias ​​​​www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog $(APACHE_LOG_DIR)/error.log
CustomLog $(APACHE_LOG_DIR)/access.log kombinirano

Spremite i zatvorite datoteku.

Kopirajte datoteku koju ste upravo stvorili i upotrijebite je kao predložak za virtualni host drugog web-mjesta, uređujući odgovarajuće informacije.

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

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

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

Sada preostaje samo urediti relevantne podatke kako bi datoteka mogla služiti drugoj domeni. Kao rezultat toga, druga datoteka virtualnog hosta izgleda ovako:


ServerAdmin [e-mail zaštićen]
Naziv poslužitelja test.com
Server Alias ​​​​www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog $(APACHE_LOG_DIR)/error.log
CustomLog $(APACHE_LOG_DIR)/access.log kombinirano

Spremite i zatvorite datoteku.

5: Omogućavanje virtualnih hostova

Nakon što stvorite datoteke virtualnog hosta, trebate ih omogućiti. Apache nudi posebne alate za to.

Na primjer, možete koristiti a2ensite za ovo:

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

Zatim onemogućite zadani virtualni host 000-default.conf:

sudo a2dissite 000-default.conf

Ponovno pokrenite Apache da omogućite promjene:

sudo systemctl ponovno pokrenite apache2

Imajte na umu: sustav Ubuntu 16.04 koristi systemctl.

Također možete koristiti naredbu:

sudo service apache2 restart

Ova je naredba još uvijek podržana, ali može vratiti nestandardne rezultate.

6: Konfiguriranje lokalnih računala (izborno)

Ako nemate naziv domene i koristili ste lažnu domenu umjesto stvarne, možete testirati postavke privremenim uređivanjem datoteke hosts na vašem lokalnom računalu. on će presresti zahtjeve za prethodno konfigurirane domene i proslijediti ih VPS-u (odnosno, obavljati DNS posao). Ali ova metoda radi samo na lokalnom računalu i prikladna je samo za testiranje.

Bilješka: Provjerite jeste li se prebacili na svoj lokalni stroj. Za dovršetak ovog odjeljka potrebne su vam vjerodajnice administratora.

Na Mac ili Linux sustavima uredite host datoteku s administratorskim ovlastima.

sudo nano /etc/hosts

Bilješka Napomena: Korisnici sustava Windows potrebne upute mogu pronaći na ovoj poveznici.

U ovoj datoteci trebate navesti IP adresu poslužitelja, a potom i naziv domene koji će se koristiti za pristup poslužitelju.

Na primjer, ako je IP adresa poslužitelja 111.111.111.111, sljedeće retke treba dodati na kraj datoteke glavnog računala

127.0.0.1 lokalni host
127.0.1.1 gostujuća radna površina
111.111.111.111 primjer.com
111.111.111.111 test.com

Sada će svi zahtjevi za example.com i test.com biti poslani na lokalno računalo, a odatle na IP adresu poslužitelja.

Spremite i zatvorite datoteku.

7: Rezultati

Za testiranje postavki virtualnih hostova jednostavno otvorite domene u web pregledniku:

http://example.com

U tom slučaju na ekranu će se pojaviti poruka:

Uspjeh! Virtualni host example.com radi!

Bilješka: Rezultat koji se pojavljuje na zaslonu ovisi o sadržaju datoteke stvorene u odjeljku 3.

Drugo mjesto trebate provjeriti na isti način:

Na ekranu će se pojaviti sljedeći rezultat:

Uspjeh! Virtualni host test.com radi!

Ako obje stranice rade, tada su virtualni hostovi uspješno konfigurirani. Ako je datoteka hosts na lokalnom računalu promijenjena, nakon testiranja izbrišite retke koji su joj dodani kako ne biste zatrpali datoteku nepotrebnim unosima.

Zaključak

Ubuntu 16.04 poslužitelj sada podržava dvije stranice na odvojenim domenama. Općenito, broj hostova koje Apache može podržati ovisi samo o resursima virtualnog namjenskog poslužitelja. Za dodavanje novog virtualnog hosta na poslužitelj jednostavno ponovite cijeli gornji postupak.

Oznake: ,

Nekoliko stranica, Apache pruža mogućnost konfiguriranja virtualnih hostova za ove svrhe. Postoje dvije vrste virtualnih hostova: virtualni hostovi temeljeni na imenu, odnosno vezan uz naziv domene i IP-temeljeni virtualni hostovi, odnosno vezan za IP adresu. Prva vrsta virtualnih hostova koristi različita imena za jednu IP adresu, dok druga vrsta koristi zasebnu IP adresu za svako mjesto. Stvaranje virtualnih hostova u Apacheu je neophodno ako vaš poslužitelj ima nekoliko stranica, a njihova konfiguracija je neophodna za ispravan prikaz svih stranica.

Najčešća je uporaba virtualnih hostova temeljenih na nazivima vezanih uz jednu IP adresu. Dakle, možete pohraniti mnogo stranica na jednom IP-u.

Najlakši način dodavanja i zatim konfiguriranja Apache virtualnih hostova je uređivanje konfiguracijske datoteke web poslužitelja, koja ima različite nazive i lokacije ovisno o operativnom sustavu:

U Crveni šešir/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Drugi način konfiguriranja je korištenje vlastitog .konf datoteke koje bi se trebale nalaziti duž staze:

U Crveni šešir/CentOS/Fedora:

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

Debian/Ubuntu:

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

Obično u konfiguracijskoj datoteci httpd.conf ili apache2.conf dio za upravljanje virtualnim hostom nalazi se na samom kraju. Da biste dodali virtualni host, morat ćete otvoriti ovu datoteku i ukloniti komentar (ukloniti # ) direktiva ImeVirtualHost *:80(Argument * stoji za "sva imena hostova"). Ako koristite metodu postavljanja konfiguracije u konf.d, tada navedenu direktivu ne treba odkomentirati, već je treba definirati u samoj kreiranoj datoteci.

Nakon NazivVirtualHost slijedi blok Virtualni host *:80. Takvi blokovi su konfiguracija vaših virtualnih hostova. Sve to otprilike izgleda ovako:

ImeVirtualHost *:80 AllowOverride Sve opcije Sve ServerAdmin [e-mail zaštićen] DocumentRoot /var/www/site1.ru ServerName site1.ru Server Alias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [e-mail zaštićen] DocumentRoot /var/www/site2.ru ServerName site2.ru Server Alias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Ovdje se vrše sve postavke virtualnog hosta, kao i omogućavanje ili onemogućavanje određenih opcija.

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

1. Direktiva ServerAdmin označava e-mail adresu administratora poslužitelja na koju se primaju sve obavijesti hosta u vezi s njegovom administracijom.

2. Direktiva DocumentRoot označava korijenski direktorij s datotekama stranice koje će web poslužitelj izdati klijentu (pregledniku).

3. Direktiva Naziv poslužitelja definira ime glavnog računala na čiji će zahtjev biti vraćene datoteke smještene u DocumentRoot.

4. Direktiva Alias ​​poslužitelja služi za specificiranje alternativnih naziva hostova (aliasa, aliasa) na koje odgovara.

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

Prije blokova s ​​virtualnim hostovima, kao što ste primijetili, postoji još jedan unos:

DopustiNadjačaj sve

U oznakama sadrži popis direktiva (parametara) koji će se primijeniti na određeni direktorij, što je naznačeno u početnoj oznaci. U gornjem primjeru, ovo je var/www/. Navedena direktiva AllowOverride određuje hoće li se koristiti datoteke .htaccess i ako je tako, koje globalne direktive web poslužitelja mogu biti nadjačane u takvim datotekama. U gornjem primjeru, vrijednost AllowOverride instaliran u svi, koji omogućuje obradu .htaccess datoteka i svih direktiva navedenih u njoj. Postoje i druga moguća značenja:

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

FileInfo– omogućuje korištenje direktiva koje kontroliraju vrste dokumenata (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority itd..).

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

Ograničiti— dopušta korištenje direktiva kontrole pristupa (dopusti, zabrani i naredi).

Mogućnosti— omogućuje korištenje direktiva s kojima možete kontrolirati određene značajke imenika (Opcije i XBitHack).

Ovo je jedna od mnogih mogućih uputa koje možete pročitati na web stranici programera.

Nakon spremanja promjena u datoteku, morate provjeriti ima li novih postavki pogrešaka. Za provjeru možete koristiti sljedeće naredbe:

Apachectl configtest apachectl -S apachectl -d

Ako poruka " Sintaksa OK“, to znači da nema grešaka i da možete ponovno pokrenuti web poslužitelj kako bi promjene stupile na snagu. To možete učiniti pomoću sljedećih naredbi:

Red-Hat/CentOS/Fedora:

Ponovno pokretanje usluge httpd

/etc/init.d/ httpd ponovno pokretanje

Debian/Ubuntu:

Ponovno pokretanje usluge apache2

/etc/init.d/apache2 ponovno pokrenite

Dalje, možete naići na sljedeći problem. Kada stigne zahtjev, Apache prolazi kroz cijeli popis virtualnih hostova u potrazi za podudaranjem, a ako ne pronađe podudaranje, vraća prvo računalo po redu. Kako bi uklonili ovaj problem, stručnjaci su osmislili takozvani prazan odjeljak, koji treba umetnuti prije prvog odjeljka VirtualHost pravo mjesto. Otprilike to izgleda ovako:

ServerName default DocumentRoot /var/www/default

Na taj će se način svi nevažeći zahtjevi slati duž staze var/www/default, gdje možete stvoriti indeksnu stranicu koja će prijaviti nevažeći zahtjev.

Također, Apache prema zadanim postavkama nema pristup vašim kućnim imenicima, već samo imeniku /var/www. Ako koristite SElinux na svom poslužitelju, upotrijebite sljedeće naredbe kako biste Apacheu dali pristup vašim matičnim direktorijima:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Da bi Apache imao pristup određenom direktoriju, na primjer, /domna/mojdir treba koristiti naredbu:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Kada je onemogućeno SELinux Da biste Apacheu dali pristup određenom početnom direktoriju web-mjesta, morat ćete ručno urediti njegovu konfiguracijsku datoteku ( /etc/httpd/conf/httpd.conf V CentOS/Fedora ili /etc/apache2/apache2.conf V Debian/Ubuntu).

S konfiguracijskom datotekom web poslužitelja otvorenom za uređivanje pronađite redak DocumentRoot(kada koristite nano editor, možete ga pronaći pomoću prečice na tipkovnici Ctrl+W). Zamijenite vrijednost u navodnicima /var/www/html na apsolutni put do početnog direktorija web-mjesta (na primjer, /home/username/site.com). Spremite promjene i izađite iz izbornika uređivača ( Ctrl+O I Ctrl+X). Ponovno pokrenite Apache.

Ako imate instaliran OS na svom VPS-u Debian/Ubuntu, zatim uredite liniju DocumentRoot potrebno u datoteci /etc/apache2/sites-available/default. Otvorite ga za uređivanje i zamijenite zadanu vrijednost /var/www do apsolutne putanje do početnog direktorija stranice. Ponovno pokrenite web poslužitelj.

Ovo dovršava osnovno postavljanje virtualnih hostova.

Nekoliko stranica, Apache pruža mogućnost konfiguriranja virtualnih hostova za ove svrhe. Postoje dvije vrste virtualnih hostova: virtualni hostovi temeljeni na imenu, odnosno vezan uz naziv domene i IP-temeljeni virtualni hostovi, odnosno vezan za IP adresu. Prva vrsta virtualnih hostova koristi različita imena za jednu IP adresu, dok druga vrsta koristi zasebnu IP adresu za svako mjesto. Stvaranje virtualnih hostova u Apacheu je neophodno ako vaš poslužitelj ima nekoliko stranica, a njihova konfiguracija je neophodna za ispravan prikaz svih stranica.

Najčešća je uporaba virtualnih hostova temeljenih na nazivima vezanih uz jednu IP adresu. Dakle, možete pohraniti mnogo stranica na jednom IP-u.

Najlakši način dodavanja i zatim konfiguriranja Apache virtualnih hostova je uređivanje konfiguracijske datoteke web poslužitelja, koja ima različite nazive i lokacije ovisno o operativnom sustavu:

U Crveni šešir/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Drugi način konfiguriranja je korištenje vlastitog .konf datoteke koje bi se trebale nalaziti duž staze:

U Crveni šešir/CentOS/Fedora:

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

Debian/Ubuntu:

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

Obično u konfiguracijskoj datoteci httpd.conf ili apache2.conf dio za upravljanje virtualnim hostom nalazi se na samom kraju. Da biste dodali virtualni host, morat ćete otvoriti ovu datoteku i ukloniti komentar (ukloniti # ) direktiva ImeVirtualHost *:80(Argument * stoji za "sva imena hostova"). Ako koristite metodu postavljanja konfiguracije u konf.d, tada navedenu direktivu ne treba odkomentirati, već je treba definirati u samoj kreiranoj datoteci.

Nakon NazivVirtualHost slijedi blok Virtualni host *:80. Takvi blokovi su konfiguracija vaših virtualnih hostova. Sve to otprilike izgleda ovako:

ImeVirtualHost *:80 AllowOverride Sve opcije Sve ServerAdmin [e-mail zaštićen] DocumentRoot /var/www/site1.ru ServerName site1.ru Server Alias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [e-mail zaštićen] DocumentRoot /var/www/site2.ru ServerName site2.ru Server Alias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Ovdje se vrše sve postavke virtualnog hosta, kao i omogućavanje ili onemogućavanje određenih opcija.

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

1. Direktiva ServerAdmin označava e-mail adresu administratora poslužitelja na koju se primaju sve obavijesti hosta u vezi s njegovom administracijom.

2. Direktiva DocumentRoot označava korijenski direktorij s datotekama stranice koje će web poslužitelj izdati klijentu (pregledniku).

3. Direktiva Naziv poslužitelja definira ime glavnog računala na čiji će zahtjev biti vraćene datoteke smještene u DocumentRoot.

4. Direktiva Alias ​​poslužitelja služi za specificiranje alternativnih naziva hostova (aliasa, aliasa) na koje odgovara.

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

Prije blokova s ​​virtualnim hostovima, kao što ste primijetili, postoji još jedan unos:

DopustiNadjačaj sve

U oznakama sadrži popis direktiva (parametara) koji će se primijeniti na određeni direktorij, što je naznačeno u početnoj oznaci. U gornjem primjeru, ovo je var/www/. Navedena direktiva AllowOverride određuje hoće li se koristiti datoteke .htaccess i ako je tako, koje globalne direktive web poslužitelja mogu biti nadjačane u takvim datotekama. U gornjem primjeru, vrijednost AllowOverride instaliran u svi, koji omogućuje obradu .htaccess datoteka i svih direktiva navedenih u njoj. Postoje i druga moguća značenja:

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

FileInfo– omogućuje korištenje direktiva koje kontroliraju vrste dokumenata (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority itd..).

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

Ograničiti— dopušta korištenje direktiva kontrole pristupa (dopusti, zabrani i naredi).

Mogućnosti— omogućuje korištenje direktiva s kojima možete kontrolirati određene značajke imenika (Opcije i XBitHack).

Ovo je jedna od mnogih mogućih uputa koje možete pročitati na web stranici programera.

Nakon spremanja promjena u datoteku, morate provjeriti ima li novih postavki pogrešaka. Za provjeru možete koristiti sljedeće naredbe:

Apachectl configtest apachectl -S apachectl -d

Ako poruka " Sintaksa OK“, to znači da nema grešaka i da možete ponovno pokrenuti web poslužitelj kako bi promjene stupile na snagu. To možete učiniti pomoću sljedećih naredbi:

Red-Hat/CentOS/Fedora:

Ponovno pokretanje usluge httpd

/etc/init.d/ httpd ponovno pokretanje

Debian/Ubuntu:

Ponovno pokretanje usluge apache2

/etc/init.d/apache2 ponovno pokrenite

Dalje, možete naići na sljedeći problem. Kada stigne zahtjev, Apache prolazi kroz cijeli popis virtualnih hostova u potrazi za podudaranjem, a ako ne pronađe podudaranje, vraća prvo računalo po redu. Kako bi uklonili ovaj problem, stručnjaci su osmislili takozvani prazan odjeljak, koji treba umetnuti prije prvog odjeljka VirtualHost pravo mjesto. Otprilike to izgleda ovako:

ServerName default DocumentRoot /var/www/default

Na taj će se način svi nevažeći zahtjevi slati duž staze var/www/default, gdje možete stvoriti indeksnu stranicu koja će prijaviti nevažeći zahtjev.

Također, Apache prema zadanim postavkama nema pristup vašim kućnim imenicima, već samo imeniku /var/www. Ako koristite SElinux na svom poslužitelju, upotrijebite sljedeće naredbe kako biste Apacheu dali pristup vašim matičnim direktorijima:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Da bi Apache imao pristup određenom direktoriju, na primjer, /domna/mojdir treba koristiti naredbu:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Kada je onemogućeno SELinux Da biste Apacheu dali pristup određenom početnom direktoriju web-mjesta, morat ćete ručno urediti njegovu konfiguracijsku datoteku ( /etc/httpd/conf/httpd.conf V CentOS/Fedora ili /etc/apache2/apache2.conf V Debian/Ubuntu).

S konfiguracijskom datotekom web poslužitelja otvorenom za uređivanje pronađite redak DocumentRoot(kada koristite nano editor, možete ga pronaći pomoću prečice na tipkovnici Ctrl+W). Zamijenite vrijednost u navodnicima /var/www/html na apsolutni put do početnog direktorija web-mjesta (na primjer, /home/username/site.com). Spremite promjene i izađite iz izbornika uređivača ( Ctrl+O I Ctrl+X). Ponovno pokrenite Apache.

Ako imate instaliran OS na svom VPS-u Debian/Ubuntu, zatim uredite liniju DocumentRoot potrebno u datoteci /etc/apache2/sites-available/default. Otvorite ga za uređivanje i zamijenite zadanu vrijednost /var/www do apsolutne putanje do početnog direktorija stranice. Ponovno pokrenite web poslužitelj.

Ovo dovršava osnovno postavljanje virtualnih hostova.

reci prijateljima