Apache konfiguracijska datoteka. Apache konfiguracijska datoteka. Apache kontrolne naredbe

Apache konfiguracijske datoteke

U većini paketa, Apacheova glavna konfiguracijska datoteka zove se httpd.conf. Ovisno o verziji sustava, ova se datoteka može nalaziti u različitim direktorijima, ali njezin format ostaje nepromijenjen. Na sustavima Caldera i SuSE, datoteka httpd.conf nalazi se u direktoriju /etc/httpd; na Debianu i Slackwareu nalazi se u /etc/apache (Slackware nudi oglednu datoteku /etc/apache/httpd.conf.default; sve što trebate učiniti da bi poslužitelj radio je preimenovati ovu datoteku i izvršite potrebne izmjene); Na Red Hatu i TurboLinuxu datoteka httpd.conf nalazi se u direktoriju /etc/httpd/conf/.

Kao i obično, reci u datoteci httpd.conf koji počinju simbolom # sadrže komentare. Opcije koje definiraju konfiguraciju poslužitelja navedene su kako slijedi:

Direktiva Značenje

Direktiva je ime koje može imati neku vrijednost pridruženu sebi. Vrijednost može biti broj, naziv datoteke ili proizvoljni niz znakova. Neke direktive vam omogućuju da odredite više podopcija. U ovom slučaju naziv direktive stavlja se u uglaste zagrade. Primjer takve direktive dan je u nastavku.

Opcije FollowSymLinks

AllowOverride Ništa

Posljednji redak sadrži naziv iste direktive koja je navedena na početku, ali joj nije dana vrijednost. Nazivu direktive koja završava blok prethodi kosa crta.

U nekim slučajevima, dodatne konfiguracijske datoteke navedene u nastavku koriste se za konfiguraciju Apachea. Obično se nalaze u istom direktoriju kao httpd.conf.

Access.conf. Poveznica na ovu datoteku formirana je pomoću AccessConfig direktive i nalazi se u datoteci httpd.conf. Datoteka access.conf najčešće sadrži direktive , definirajući značajke pristupa imenicima navedenim u njima. Trenutno je ova datoteka obično prazna, a ponekad je vrijednost AccessConfig postavljena na /dev/null, što onemogućuje korištenje access.conf.

Mime.vrste. Da bi web-pregledniku rekao kako treba obrađivati ​​podatke, web-poslužitelj koristi standard MIME (Multipurpose Internet Mail Extensions). Na primjer, tip MIME text/plain znači da su podaci čisti tekst, dok image/jpeg navodi grafičke podatke u JPEG (Joint Photographic Experts Group) formatu. Datoteka mime.types sadrži informacije o mapiranju između MIME tipova i ekstenzija datoteka. Na primjer, nazivi datoteka koji završavaju na .txt i .asc povezani su s MIME tipom text/plain . Ako ovo mapiranje nije ispravno postavljeno, web preglednik će imati poteškoća s obradom nekih vrsta datoteka. Datoteka koja se isporučuje kao dio paketa omogućuje obradu gotovo svih vrsta podataka koji se mogu postaviti na web stranicu. Ako trebate koristiti rijetke vrste, morat ćete dodati nove unose u ovu datoteku.

Magija. Ova vam datoteka također omogućuje definiranje preslikavanja između MIME vrsta i podataka. Prilikom analize informacija možete otkriti određene znakove jedne ili druge vrste. Na primjer, mnoge datoteke sadrže posebne ključeve - "magične" nizove bajtova. Ove sekvence, pretvorene u prikaz teksta, navedeni su u čarobnoj datoteci. Osim ako niste temeljito proučili format ove datoteke, ne preporučuje se mijenjati je. U ovom poglavlju nećemo raspravljati o strukturi čarobne datoteke.

Iz knjige Linux za korisnika Autor Kostromin Viktor Aleksejevič

8.2.2. Osnovne konfiguracijske datoteke Ako ste pročitali Sect. 8.2.1 (ili ako ste pogledali datoteku /etc/inittab), onda zamislite da u normalnoj situaciji init proces, osim pokretanja getty procesa, izvodi 2 glavne akcije: pokreće skriptu rc.sysinit iz /etc /rc.d imenik; pokreće rc skriptu

Iz knjige DIY Linux server Autor

12.5. SSL i Apache 12.5.1. Instaliranje SSL-a SSL (Secure Sockets Layer) je metoda šifriranja koju je razvio Netscape za pružanje internetske sigurnosti. Ova metoda podržava višestruke metode šifriranja i pruža provjeru autentičnosti na razini klijenta i na razini klijenta.

Iz knjige Asterisk™: Budućnost telefonije, drugo izdanje Autor Meggelen Jim Wang

Iz knjige Linux mrežni alati autor Smith Roderick W.

Iz knjige o Linuxu: Kompletan vodič Autor Kolisničenko Denis Nikolajevič

DHCP konfiguracijske datoteke Većina distribucija Linux paketi sadrži DHCP poslužitelj koji je razvio Internet Software Consortium (http://www.isc.org/products/DHCP/). Internet Software Consortium (ISC) objavio je DHCP verziju 3.0 krajem 2000., ali početkom 2002. mnogi Linux verzije još uvijek došao sa stara verzija 2.0

Iz knjige Ubuntu 10. Kratki vodič Autor Kolisničenko D. N.

Iz knjige Jezik C - Vodič za početnike autor: Prata Steven

Konfiguracijske datoteke Exima Glavna konfiguracijska datoteka Exima zove se exim.conf. Obično se nalazi u direktoriju /etc. Ova datoteka sadrži unose u sljedećem formatu: opcija = vrijednost Kao i obično, reci koji sadrže komentare počinju znakom #.

Iz knjige Linux očima hakera Autor Flenov Mihail Evgenijevič

Iz knjige Razvoj jezgre Linuxa od Love Robert

16.1. Instaliranje Apachea Ovisno o distribuciji, paket iz kojeg je instaliran Apache web poslužitelj može se zvati apache ili httpd, a paket dokumentacije može se zvati apache-docs ili httpd-manual. U prvom slučaju, morat ćete instalirati apache-common paket koji sadrži

Iz autorove knjige

16.2. Postavljanje Apachea. Konfiguracijske datoteke Nakon instaliranja Apachea, trebali biste urediti sljedeće datoteke:? /etc/httpd/conf/httpd.conf - glavna konfiguracijska datoteka. Za Apache 2.x. ova se datoteka također može zvati httpd2.conf;? /etc/logrotate.d/apache ili /etc/logrotate.d/httpd (u verziji 2.0) - rotacijska datoteka

Iz autorove knjige

16.10. SSL i Apache 16.10.1. Instaliranje SSL-a SSL (Secure Sockets Layer) je metoda šifriranja koju je razvio Netscape kako bi se osigurao siguran prijenos podataka. Ova metoda podržava višestruke metode šifriranja i pruža autentifikaciju na razini klijenta i klijenta.

Iz autorove knjige

19.2. Ispis konfiguracijskih datoteka pokretačkog programa 19.1 prikazuje glavnu GRUB2 konfiguracijsku datoteku - /boot/grub/grub.cfg. Ne može se uređivati ​​ručno. Da biste je stvorili, upotrijebite uslužni program /usr/sbm/grub-mkconfig, koji generira ovu konfiguracijsku datoteku na na temelju šablona,

Iz autorove knjige

26.2.3. Konfiguracijske datoteke poslužitelja Konfiguracijske datoteke poslužitelja nalaze se u direktoriju /etc/apache2. Glavna konfiguracijska datoteka zove se apache2.conf. Njegove zadane postavke će odgovarati većini korisnika. Ako planirate koristiti web poslužitelj ne samo lokalno (za

Iz autorove knjige

Izvorne datoteke i izvršne datoteke Naš divan program, unatoč svojoj kratkoći i jednostavnosti, potpuno je besmislen skup simbola za računalo, budući da "ne razumije" direktive poput #include ili printf. On samo razumije poseban jezik,

Iz autorove knjige

5.3.1. Konfiguracijske datoteke Sve konfiguracijske datoteke SSH protokola nalaze se u direktoriju /etc/ssh. Ovdje možete vidjeti sljedeći popis:? Konfiguracijska datoteka SSH poslužitelja - sshd_config;? Konfiguracijska datoteka SSH klijenta - ssh_config;? ključne datoteke za razne

Iz autorove knjige

Konfiguracijske opcije otklanjanja pogrešaka jezgre Postoji nekoliko konfiguracijskih opcija koje pomažu u otklanjanju pogrešaka i testiranju koda jezgre koje su omogućene tijekom kompajliranja. Ove su opcije dostupne u stavci Hakiranje jezgre u izborniku uređivača konfiguracije jezgre. Svi ovi

Apache je web poslužitelj.

Konfiguracijske datoteke

Prema zadanim postavkama, sve konfiguracijske datoteke pohranjene su u mapi "conf".

httpd.conf je glavna konfiguracijska datoteka apache poslužitelj. Promjene u ovoj datoteci zahtijevaju ponovno pokretanje apache poslužitelja da bi stupile na snagu.

U mapi "extra" (unutar mape "conf") su dodatne konfiguracijske datoteke. Ako je potrebno, mogu se povezati unutar glavne konfiguracijske datoteke.

Sintaksa konfiguracijskih datoteka

Treba postojati samo jedna direktiva u jednom retku. Znak \ (obrnuta kosa crta) može se koristiti kao zadnji znak u retku da označi da se direktiva nastavlja u sljedećem retku. Iza znaka \ ne smije biti drugih razmaka osim znaka za kraj retka.

Direktiva i njeni argumenti odvojeni su razmakom. Sami argumenti također su odvojeni razmacima. Ako argument sadrži razmake, mora biti u navodnicima.

Direktive ne razlikuju velika i mala slova, ali argumenti, naprotiv, razlikuju velika i mala slova.

Redak koji počinje znakom # (hash) smatra se komentarom i zanemaruje se. Komentar se ne može staviti u isti redak kao i direktiva.

Znakovi razmaka, umetnute prije direktive se zanemaruju, tako da se mogu koristiti za umetanje uvlaka kako bi kod bio lakši za čitanje. Prazne linije također se zanemaruju.

Moduli

Modul je jednostavno plug-in datoteka koja vam omogućuje dodavanje dodatnih funkcija. Svi se dodaci prema zadanim postavkama nalaze u mapi "moduli".

Moduli vam omogućuju korištenje direktiva koje nisu uključene u jezgru web poslužitelja Apache.

.htaccess

Htaccess je dodatna konfiguracijska datoteka za Apache web poslužitelj, kao i slične poslužitelje. Omogućuje vam konfiguriranje funkcionalnosti za pojedinačne direktorije, bez mijenjanja glavne konfiguracijske datoteke, budući da joj je pristup najčešće zabranjen.

Datoteka .htaccess utječe samo na direktorij u kojem se nalazi i njegove podređene direktorije. Datoteka .htaccess može se smjestiti u bilo koji direktorij. Direktive ove datoteke utječu na sve datoteke u trenutnom direktoriju i svim njegovim poddirektorijima (osim ako ove direktive nisu nadjačane direktivama dotičnih .htaccess datoteka).

Promjene napravljene u .htaccess datoteci ne zahtijevaju ponovno pokretanje poslužitelja.

Ako je u datoteci .htaccess napravljena bilo kakva pogreška, na primjer, direktiva ili vrijednost direktive je netočno napisana, poslužitelj će vratiti grešku: Error 500.

Datoteka .htaccess koristi istu sintaksu kao Apache konfiguracijske datoteke.

Možete vidjeti koje se direktive mogu nalaziti unutar .htaccess datoteke u direktoriju direktiva u “Kontekstu” određene direktive.

Koncepti: konfiguracija, direktive. Konfiguracijske datoteke, direktive. Osnovne upute za konfiguraciju. Procesi poslužitelja. Kontrolirajte pristup direktorijima i datotekama.

Konfiguracija (latinski configuratio - međusobno uređenje) je posebna logička i metodološka tehnika, mentalna tehnika za sintetiziranje znanja o različitim predmetima, različitih ideja o istom objektu.

Direktive, g. (od latinskog directio - smjer). Opće upute koje viša vlast daje podređenom (poslužitelj za radna stanica itd.) .

Konfiguracijska datoteka je datoteka prilično jednostavnog formata. Svaki redak predstavlja ključnu riječ i jedan ili više argumenata. Radi jednostavnosti, većina redaka sadrži samo jedan argument. Sve što slijedi nakon simbola # je komentar i zanemaruje se.

Apache se konfigurira promjenom servisnih datoteka u direktoriju /etc/httpd/conf/. Glavna konfiguracijska datoteka web poslužitelja je httpd.conf. Konfiguracijske direktive mogu se smjestiti u različite datoteke, koje uključuju file_name.conf u glavnoj konstrukciji Include.

Ako je lokacija datoteke ili direktorija navedena implicitno u konfiguracijskoj datoteci (eksplicitna lokacija počinje u korijenu datotečnog sustava - sa znakom "/"), Apache koristi direktorij naveden u direktivi ServerRoot za određivanje stvarne lokacije cilj.

Opis Apache modula i konfiguracijskih direktiva

Direktive se mogu koristiti na sljedećim razinama:

Razina konfiguracije poslužitelja - direktiva se može koristiti samo u glavnoj konfiguracijskoj datoteci.

Razina V - direktiva se može koristiti različito za različite virtualne hostove.

D razina - za bilo koji direktorij možete postaviti vlastite postavke pomoću direktive ove razine.

H razina .htaccess datoteka - direktiva je dopuštena za korištenje u .htaccess datotekama na mjestima gdje to dopušta poslužitelj.

U bilo kojem trenutku, upotreba parametra naziva datoteke u direktivi navodi apsolutnu (počinje s "/") ili relativnu stazu do datoteke iz direktorija ServerRoot.

CORE - jezgra web poslužitelja (Apache core modul)

AccessConfig naziv datoteke

Postavlja mjesto konfiguracijske datoteke. Zadana konfiguracijska datoteka sustava je conf/access.conf; Za prekid čitanja ove datoteke preporučuje se postaviti /dev/null.

AccessFileName datoteka datoteka ...

Postavlja nazive pristupnih datoteka koje se koriste za konfiguraciju on-the-fly konfiguracije prema zadanim postavkama - .htaccess.

AddModule modul modul ... [A]

Aktivira dinamički učitani modul koji se isporučuje kao zasebna datoteka knjižnice.

AddModule modul modul ...

Aktivira modul koji se dinamički učitava, isporučuje se kao zasebna datoteka knjižnice ili kompilira unutar glavnog httpd modula.

AllowOverride param param ...

Postavlja pravila prema kojima Apache koristi direktive u internim .htaccess datotekama;

Ništa - ignorira;

Sve - koristi sve direktive;

Options - omogućuje korištenje Options i XBitHack;

Indeksi - upute za upravljanje indeksiranjem imenika;

FileInfo - direktive za upravljanje vrstama datoteka i njihovim rukovateljima;

AuthConfig - direktive za pristup Auth* direktorijima;

Ograničenje - direktive dopusti/zabrani/naredi.

Područje AuthName

AuthType vrsta

Koristi se za određivanje metode za traženje i prijenos korisničkog imena i lozinke za pristup imenicima web stranica. Najčešće koriste Basic, rjeđe - Digest i druge.

Adresa BindAddress [A]

Određuje adresu na kojoj će Apache prihvaćati veze. Možete koristiti ime hosta, IP adresu ili *.

ClearModuleList[A]

Direktiva briše popis učitanih modula. Nakon ove direktive, morate koristiti AddModule direktive za rad s potrebnim modulima.

ContentDigest uključen|isključen

Omogućuje ili onemogućuje prosljeđivanje hash podataka MD5. Izračunava se za sve poslane stranice i ne sprema se u predmemoriju.

Ime direktorija CoreDumpDirectory [A]

Usmjerava Apache na direktorij u koji će se spremati datoteke ispisa memorije (jezgra) stvorene u slučaju hitnih pogrešaka.

DefaultType mimetype

Postavlja vrstu MIME koja se šalje klijentima ako Apache ne može odrediti vrstu putem mime.types datoteke ili AddType direktive. Zadana postavka je tekst/običan.

...

Kombinira grupu direktiva koje određuju Apacheovo ponašanje prilikom pristupa dokumentima koji se nalaze u određenom direktoriju. Dopušteno je koristiti maske imena - simbole *, ? prema pravilima školjke. Ako se koristi maska, ispred imena se stavlja tilda ~.

...

Definira grupu direktorija navedenih regularnim izrazom i postavlja pravila za rad Apachea s direktorijima i datotekama u ovoj grupi.

DocumentRoot dirname

Pokazuje poslužitelju lokaciju korijena stabla direktorija ispod kojeg se nalazi struktura podataka web poslužitelja.

ErrorDocument filename|string|URL

U slučaju pogreške, preusmjerava na navedene stranice. Na nastalu situaciju možete postaviti i komentar koji treba započeti jednim navodnikom. Primjer:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester

ErrorDocument 404 /cgi-bin/bad_urls.pl

ErrorDocument 401 /subscription_info.html

ErrorDocument 403 "Nažalost ne mogu vam dopustiti pristup danas"

Naziv datoteke ErrorLog

Naziv datoteke dnevnika pogrešaka. Ako redak parametra počinje s (/), tada se put do datoteke mora navesti iz ServerRoot-a; ako počinje s (|), tada se poruke o pogrešci prosljeđuju navedenoj naredbi na standardnom ulazu. Konkretno, na ovaj način, na primjer, možete implementirati spremanje dnevnika izravno u SQL DBMS ili ih spremiti odmah komprimirane, prijenosom, na primjer, u gzip. Apache verzije 1.3 i novije izlazne poruke u syslog prema zadanim postavkama ako sustav podržava ovu značajku; ali to se može onemogućiti pomoću syslog:facility.

...

Kontrola pristupa datotekama. Sekcije obrađuju se istim redoslijedom kao u konfiguracijskoj datoteci, nakon što se pročitaju odjeljci direktive i .htaccess datoteke, ali prije čitanja odjeljaka direktorija . Argument mora sadržavati naziv datoteke ili masku koja sadrži "?" - bilo koji znak, "*" - bilo koji niz. S dodatnim simbolom ~ mogu se koristiti prošireni propisi. izrazi (pogledajte odjeljak REGULARNI IZRAZI u grep(1)) Na primjer: će odgovarati onima koji se obično koriste na Internetu grafičke datoteke.

...

Isto kao , ali koristi regularne izraze.

Odnosi se samo na pokretanje Apachea i račvanja procesa u okruženju i s pravima koja odgovaraju zadanom imenu.

HostNameLookups on|off|duplo

Upravlja mogućnošću određivanja naziva hosta posjetitelja pomoću obrnutog DNS-a. Radi sporo i prema zadanim postavkama smatra se onemogućenim. Dvostruko označava da naziv glavnog računala treba biti predmet dodatne provjere kako bi se osiguralo da naziv odgovara IP adresi glavnog računala koje je poslalo zahtjev.

IdentityCheck uključen|isključen

Omogući RFC1413 provjeru autentičnosti. Omogućavanje funkcije značajno će povećati vrijeme pristupa poslužitelju.

...

I treba izvoditi samo ako ovaj parametar definirane unutarnje strukture Apachea. Znak [!] ispred parametra označava da će se blok direktive čitati samo ako parametar nije definiran.

...

Označava da su direktive smještene unutar bloka formiranog od para direktiva I treba izvoditi samo ako ovaj modul sastavljen u Apacheu. Znak [!] ispred modula označava da će se blok direktive čitati samo ako parametar nije definiran.

Uključi naziv datoteke [A]

Direktiva vam omogućuje uključivanje konfiguracijskih datoteka u konfiguraciju poslužitelja.

KeepAlive uključen|isključen [A]

Omogućuje klijentu da zatraži više datoteka uzastopno bez prekida TCP veze.

KeepAliveTimeout s [A]

Određuje vrijeme (u sekundama) prije zatvaranja TCP veze u kojem će Apache čekati sljedeći zahtjev od klijenta.

...

Omogućuje vam da navedete kojoj HTTP metodi (na primjer GET ili POST) pripada sadržaj postavljen unutra. ... naredbe za ograničenje pristupa.

Mogu se koristiti sljedeće metode: GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.

Priključak za slušanje [A]

Prisiljava Apache da sluša navedene adrese i portove. Na primjer, da natjerate poslužitelja da sluša na portovima 80 i 8000, koristite:

Kako bi Apache radio na različitim sučeljima s navedenim brojevima priključaka, upotrijebite:

Slušajte 192.170.2.1:80

Slušajte 192.170.2.5:8000

Duljina ListenBacklog [A]

Maksimalna duljina reda čekanja za obradu veze.

...

Detalji u apache-manualu :)

...

Detalji u priručniku za apache

Naziv datoteke za zaključavanje [A]

Direktiva postavlja stazu do zaključane datoteke.

LogLevel emerg|upozorenje|kritika|pogreška|upozorenje|obavijest|info|debug

Postavlja razinu informacijskog sadržaja protokola (log datoteka rada poslužitelja). Preporučena upotreba: barem razina krit.

Maks. broj klijenata [A]

Direktiva postavlja ograničenje broja istodobnih zahtjeva prema poslužitelju. Zapravo, ovaj broj ne može premašiti broj podređenih procesa poslužitelja, koji prema zadanim postavkama ne može biti veći od 256. Da biste ispravili situaciju, uredite HARD_SERVER_LIMIT u httpd.h i prevedite ga.

MaxKeepAliveRequest count [A]

Omogućuje klijentu da uzastopno zatraži određeni broj datoteka bez prekida TCP veze ako je KeepAlive omogućen. Ako je parametar postavljen na 0, Apache će zatvoriti vezu samo na temelju parametra KeepAliveTimeout.

Max RequestsPerChild broj [A]

Direktiva postavlja ograničenje broja zahtjeva koje pojedinačni podređeni proces može obraditi. Ako je MaxRequestsPerChild postavljeno na 0, broj zahtjeva je neograničen.

MaxSpareServers broj [A]

Direktiva postavlja željeni najveći broj neaktivnih procesa poslužitelja. Direktiva je beskorisna ako se koristi Microsoft Windows verzija Apachea.

MinSpareServers broj [A]

Direktiva postavlja željeni minimalni broj neaktivnih procesa poslužitelja. Direktiva je beskorisna ako se koristi Microsoft Windows verzija Apachea.

NameVirtualHost port [A]

Označava da zahtjevi prema ovom nazivu porta trebaju biti odvojeni imenom hosta kojem se pristupa (HTTP "Host:" zaglavlje). Omogućuje definiranje više virtualnih hostova za jednu IP adresu.

Opcije param param...

Definira postavke akcije Apache za navedeni sadržaj. Sve moguće postavke detaljno su opisane u priručniku za apache. Često korišteno: Indeksi - uključuje prikaz sadržaja direktorija ako u njemu nije pronađena indeksna datoteka (direktiva DirectoryIndex); ExecCGI - omogućuje mogućnost postavljanja izvršnih datoteka (cgi, perl skripte) u ovaj direktorij; Uključuje - omogućuje mogućnost postavljanja datoteka u SSI direktorij. Svaku postavku podržava odgovarajući modul koji je koristi i možda neće raditi ako traženi modul nije učitan. Svaka direktiva opcija smatra se dodatkom već poznatim opcijama definiranim za nadređene direktorije. Svaka postavka može imati prefiks + ili - kako bi je omogućila ili onemogućila u određenom kontekstu.

PidFile naziv datoteke [A]

Direktiva postavlja naziv datoteke u koju poslužitelj upisuje identifikator procesa.

Određuje Apache port - broj od 0 do 65535 (imajte na umu da neke portove mogu koristiti drugi protokoli, pogledajte /etc/servises). Standardni port za http protokol je 80.

zahtijevaju id korisnika|pid grupe|važeći-korisnik|vlasnik-datoteke|vlasnik-grupe [A]

Određuje koji korisnici imaju pristup imeniku.

Zahtijevaj korisnički ID - samo ti korisnici imaju pristup

Zahtijevaj grupu naziv-grupe [naziv-grupe] - svi korisnici ovih grupa

Zahtijevaj valid-user - svi valjani korisnici.

Naziv datoteke ResourceConfig [A]

Poslužitelj čita daljnje direktive iz ove datoteke nakon čitanja httpd.conf. Naziv datoteke postavljen je u odnosu na ServerRoot. Može se onemogućiti: ResourceConfig /dev/null

RLimitCPU max|sec[ max|sec] [A]

RLimitMEM max|bytes[ max|bytes] [A]

RLimitNPROC max|count[ max|count] [A]

Zadovoljiti bilo koje|sve [A]

Definira politiku pristupa ako se Dopusti i Zahtijeva istovremeno. Koristi se kada je pristup području ograničen imenom/lozinkom i adresom klijenta. U ovom slučaju, zadana postavka ("sve") zahtijeva da klijent bude verificiran na adresi i unese ispravno korisničko ime i lozinku. U slučaju parametra "bilo", klijent će dobiti pristup ako je unio ispravno ime i lozinku ili prošao ograničenje hosta. Može se koristiti za ograničavanje pristupa putem lozinke, ali dopustiti klijentima s određene adrese bez lozinke.

Naziv datoteke ScoreBoardFile [A]

Direktiva je potrebna za određivanje naziva datoteke koju koristi poslužitelj za komunikaciju između podređenih i matičnih procesa. Možete saznati je li ova datoteka potrebna tako da pokrenete Apache i vidite stvara li datoteku s danim imenom. Ako da, onda morate biti sigurni da ga koristi samo jedna kopija Apachea.

SendBufferSize bajtovi [A]

Postavlja veličinu TCP međuspremnika.

E-pošta administratora poslužitelja

Postavlja adresu e-pošte koju poslužitelj prikazuje klijentu u porukama o pogrešci.

Ime hosta za pseudonim poslužitelja

Određuje alternativno virtualno ime hosta.

ServerName naziv hosta

Direktiva postavlja naziv poslužitelja; koristi se u stvaranju veze. Ako ime nije navedeno, poslužitelj će ga pokušati dobiti sa svoje IP adrese.

Putanja poslužitelja

Direktiva postavlja naslijeđeni put za host.

ServerRoot staza [A]

Postavlja direktorij u kojem se nalazi poslužitelj. Obično sadrži poddirektorije conf/ i logs/. Staze za druge konfiguracijske datoteke izgrađene su u odnosu na ovaj direktorij.

Potpis poslužitelja na|ff|pošti

Konfigurira redak na dnu dokumenta koji je generirao poslužitelj. Onemogućeno prema zadanim postavkama, Uključeno - prikazuje verziju poslužitelja i naziv poslužitelja virtualnog hosta, E-pošta dodaje mailto: vezu do ServerAdmin-a

ServerTokens Minimal|OS|Full [A]

Upravlja zaglavljem koje poslužitelj šalje klijentu opisujući OS poslužitelja i kompajlirane module.

ServerType standalone|inetd [A]

Određuje kako sustav pokreće poslužitelj. inetd - pokreće se iz procesa sustava inetd. samostalan - poput demonskog procesa.

Broj početnih poslužitelja [A]

Postavlja broj podređenih procesa kreiranih pri pokretanju. Broj se ionako dinamički mijenja ovisno o opterećenju, obično nema razloga za promjenu ove postavke.

Vrijeme koje će Apache čekati: primanje GET zahtjeva, primanje TCP paketa na POST i PUT zahtjevima, pauza između ACK-ova pri slanju TCP paketa u odgovorima.

UseCanonicalName on|off

Uzrokuje da Apache generira nazive stranica koje stvara pomoću vrijednosti SERVER_NAME sa SERVER_PORT.

Korisničko ime korisnika

Postavlja ID korisnika prema kojem će poslužitelj odgovarati na zahtjeve. Za korištenje direktive, poslužitelj mora biti pokrenut kao root.

...[A]

Naredbe smještene unutar bloka koji čine par naredbi I Ja određujem konfiguraciju danog virtualnog računala. Svaki virtualni host mora imati jedinstvenu IP adresu, broj porta ili naziv hosta. Ima smisla koristiti ovu direktivu ako, na primjer, poslužitelj ima mrežno sučelje za internu mrežu i drugo sučelje za vanjsku mrežu.

mod_env - postavlja i prosljeđuje varijable za obradu u CGI/SSI datotekama

PassEnv varijabla[ varijabla] ...

Prosljeđuje varijablu okruženja (npr. HOME) rukovateljima.

Vrijednost varijable SetEnv

Zapisuje navedenu vrijednost u navedenu varijablu okruženja.

UnsetEnv varijabla[ varijabla] ...

Poništava varijablu, onemogućujući njezino čitanje iz rukovatelja.

mod_setenvif - koristi uvjetne izraze za postavljanje varijabli okruženja

BrowserMatch regex env-variable[=value] ] ... [A]

Koristi prošlo regularni izraz kao filtar za zaglavlje User-Agent iz preglednika klijenta. Nakon uspješnog pogotka, inicijalizira varijablu zadanom vrijednošću. Ako je naveden samo naziv varijable, inicijalizira se brojem 1. Ako je varijabla navedena s "!" - varijabla je poništena.

BrowserMatchNoCase regularni izraz env-varijabla[=vrijednost] ] ... [A]

Djeluje slično kao BrowserMatch, dopuštajući razlike u velikim i velikim slovima između proslijeđene vrijednosti korisničkog agenta i regularnog izraza koji se koristi kao filtar.

SetEnvIf atribut regularni izraz env-varijabla[=vrijednost] ] ... [A]

Radnja koju izvodi direktiva potpuno je slična BrowserMatchu, ali umjesto User-Agenta može se koristiti bilo koje drugo zaglavlje: Remote_Host; Udaljena_Addr; Udaljeni_korisnik; Metoda_zahtjeva; Request_URI; Preporuka

SetEnvIfNoCase atribut regularni izraz env-varijabla[=vrijednost] ] ... [A]

Razlika u odnosu na SetEnvIf ista je kao i razlika između BrowserMatchNoCase i BrowserMatch gore.

mod_unique_id - generiranje jedinstvene varijable okruženja UNIQUE_ID

Varijabla se generira nasumično iz IP adrese poslužitelja, broja pokrenutog procesa, vremenskih oznaka i dodatnih internih brojača.

Varijabla je namijenjena za korištenje u složenim dokumentima kada nije moguće pratiti isti zahtjev drugim metodama.

mod_mime - dizajniran za određivanje mime vrste datoteke prilikom njezinog prijenosa klijentu

AddCharset proširenje skupa znakova ...

Za navedene ekstenzije datoteka govori Apacheu da proslijedi ovaj skup znakova kada odgovara klijentu.

AddEncoding MIME-enc proširenje ...

Za navedene ekstenzije datoteka govori Apacheu da prenese datoteku pomoću željenog MIME kodiranja.

Ekstenzija naziva rukovatelja AddHandler ...

Kaže Apacheu da datoteke s danim ekstenzijama trebaju biti proslijeđene određenom rukovatelju. Rukovatelj može biti interni (cgi-skripta i drugi) ili eksterni, opisan ranije u Action direktivi.

AddLanguage MIME-lang ekstenzija ...

Uspostavlja odnos između ekstenzija datoteka i jezičnog koda poslanog u odgovoru.

AddType proširenje tipa MIME ...

Ažurira tablicu MIME tipa s novim mapiranjem ekstenzija datoteka i MIME kodom za odgovor klijentu.

DefaultLanguage MIME-lang

Postavlja jezik odgovora tako da se uvijek šalje ako se to ne može učiniti na drugi način.

ForceType MIME tip

Forsira odgovor s danom MIME vrstom u direktoriju kojem je dodijeljena navedena direktiva.

RemoveEncoding proširenje ...

Uklanja kodiranje MIME koda u odgovoru za datoteke s ovim ekstenzijama.

RemoveHandler proširenje ...

Govori Apacheu da ne pokreće rukovatelje za datoteke s ovim ekstenzijama.

RemoveType proširenje ...

Vraća tip MIME u odgovoru klijentu na zadani tip MIME

Rukovatelj SetHandler

Prisilno poziva ovaj rukovatelj za sve datoteke kojima je ova direktiva dodijeljena.

TypesConfig naziv datoteke [A]

Određuje lokaciju tablice mapiranja tipa MIME. Zadano - conf.mime.types

mod_mime_magic - modul koji koristi složena pravila za određivanje vrste MIME datoteke poslane u odgovoru

MimeMagicFile naziv datoteke

Aktivira radnju modula pomoću navedene datoteke na određenom području dokumenta web poslužitelja ili na svim dokumentima dostupnim Apacheu.

mod_negotiation - omogućava pregovaranje prenesenih vrsta podataka između klijenta i poslužitelja

Cache NegotiatedDocs [A]

Omogućuje predmemoriju dokumenata s dosljednim sadržajem na srednjim proxy poslužiteljima i klijentskom računalu.

LanguagePriority MIME-lang... [A]

Određuje prioritet jezika koji se koriste u odgovoru klijentu kada nije moguće precizno odrediti ili pronaći jezik dokumenta koji klijent traži.

mod_alias - omogućuje vam postavljanje dokumenata u imenike web poslužitelja na proizvoljniji način

Alias ​​​​URL-staza datotečni sustav-staza

Kaže Apacheu da se dokumenti koji se nalaze "ispod" zadanog URL-a trebaju pretraživati ​​"ispod" zadane lokacije sustav datoteka.

AliasMatch URL-regexp put datotečnog sustava

Definira složenija pravila za pretraživanje podataka u datotečnom sustavu uspoređujući URL-ove s regularnim izrazom.

Preusmjeravanje URL-staze URL-a

Kao odgovor na zahtjev, URL-staza i dokumenti "ispod" vraćaju navedeni kod odgovora (302 prema zadanim postavkama) i preusmjeravaju klijenta na drugi URL. Status se može odrediti brojem ili simbolično: trajno (301), privremeno (302), vidi drugo (303), otišao (410). Za kod odgovora 410 URL odgovora mora biti izostavljen.

RedirectMatch URL-regexp URL

Slično preusmjeravanju, korištenje navedenog regularnog izraza umjesto točnog podudaranja za usporedbu proslijeđenog URL-a.

RedirectTemp URL-staza URL

Slično preusmjeravanju pomoću koda odgovora 302.

RedirectPermanent URL-path URL

Slično preusmjeravanju pomoću koda odgovora 301.

ScriptAlias ​​​​URL-staza datotečni-sustav-staza

Djeluje slično Aliasu, ali automatski postavlja rukovatelj cgi-handlerom za pokretanje za sve datoteke unutar ciljnog direktorija.

ScriptMatch URL-regexp put datotečnog sustava

Slično kao ScriptAlias, s provjerom URL-a pomoću regularnog izraza.

mod_rewrite - kontrolira lokaciju dokumenata na poslužitelju

U kratkoj zbirci opisa Apache direktiva teško je opisati zadatke koje ovaj složeni modul rješava. Kao vodič za djelovanje, najbolje je koristiti posebne odjeljke priručnika za apache "Modul mod_rewrite URL Rewriting Engine" i "URL Rewriting Guide". Najlakši način da naučite kako koristiti ovaj modul je da razmotrite specifične probleme i njihova rješenja pomoću njega.

Postoji jedan glavni (roditeljski) proces koji je odgovoran za stvaranje podređenih procesa, koji zauzvrat slušaju veze i obrađuju klijentske zahtjeve. Apache uvijek pokušava zadržati nekoliko neiskorištenih poslužiteljskih procesa u rezervi koji su spremni za obradu dolaznih zahtjeva. Stoga klijenti ne moraju čekati da se kreiraju novi podređeni procesi koji će biti račvani prije nego što se njihov zahtjev servisira. StartServers, MinSpareServers, Direktive MaxSpareServers i MaxClients kontroliraju kako nadređeni proces stvara podređene procese za servisne zahtjeve.

Općenito, Apache je vrlo samostalan, tako da za većinu web stranica nema potrebe mijenjati ove direktive s njihovih zadanih vrijednosti.

Za stranice koje moraju opsluživati ​​više od 256 istodobnih zahtjeva, MaxClients će možda trebati povećati, a za stranice koje se nalaze na poslužiteljima s ograničenom memorijom, MaxClients će možda trebati smanjiti kako bi se izbjeglo prisiljavanje poslužitelja da mijenja memoriju na disk i natrag), što će dovesti do ozbiljnog usporavanja rada.

Odabir modula jedan je od najvažnijih koraka u osiguravanju dobre sigurnosti web poslužitelja Apache. Trebamo se voditi jednim dobrim pravilom: što manje to bolje. Omogućiti funkcionalnost koju trebamo i pružiti dobra zaštita, moraju biti omogućeni sljedeći moduli:

httpd_core - Apache jezgra, potrebna uz svaku instalaciju Apachea.

mod_access - Kontrolira pristup imenicima poslužitelja ovisno o klijentovoj IP adresi ili imenu hosta.

mod_auth - Potreban za autorizaciju korisnika pomoću tekstualnih datoteka.

mod_dir - Potreban za traženje datoteka indeksa: "index.html", "default.html", itd.

mod_log_config - Omogućuje bilježenje zahtjeva poslanih poslužitelju. mod_mime - Sadrži direktive koje olakšavaju organizaciju raznih MIME vrsta na poslužitelju.

Svi ostali Apache moduli moraju biti onemogućeni. Možemo ih sigurno isključiti jer nam neće trebati. Onemogućavanjem nepotrebnih modula sprječavamo napadača da iskoristi ranjivost koja je pronađena u jednom od tih modula.

Također je vrijedno napomenuti da su dva Apache modula (mod_autoindex i mod_info) najopasnija. Prvi modul vam omogućuje automatsko indeksiranje imenika i omogućen je prema zadanim postavkama. Da biste vidjeli kako radi, unesite npr. http://server_name/icons/ i ako u ovom direktoriju nema indeksnih datoteka, prikazat će se sadržaj cijelog direktorija. Drugi modul, mod_info, nikada ne bi trebao biti dostupan preko Interneta jer izlaže cijelu konfiguraciju web poslužitelja Apache.

Sljedeće pitanje je kako sastaviti module. Čini mi se da je najbolja statička metoda (kodovi su ugrađeni u izvršne datoteke) nego dinamička metoda (kodovi se prikupljaju u trenutku pokretanja programa). Odabirom statičke metode također eliminiramo potrebu za još jednim modulom, mod_so.

Samostalan rad: Rad s poslužiteljem baze podataka MySQL podaci. Izrada tablica. Umetanje, dohvaćanje i ažuriranje podataka u bazi podataka.

Laboratorijski rad br.12. Instalacija i konfiguracija Apache web poslužitelja.

Samostalan rad: Rad s MySQL poslužiteljem baze podataka.

Apache je najpopularniji web poslužitelj na Internetu, koji opslužuje više od polovice aktivnih stranica.

U ovom ćemo članku pogledati uobičajene konfiguracijske datoteke i osnovne Apache postavke na Ubuntu/Debian sustavu

Bilješka: Apache datoteke razlikuju se ovisno o distribuciji, tako da ovaj članak nije prikladan za korisnike RHEL-a.

Instaliranje Apachea na Ubuntu/Debian

Ako Apache web poslužitelj još nije instaliran, koristite naredbe:

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

Da biste provjerili je li instalacija bila uspješna, otvorite svoj preglednik na IP adresu vašeg poslužitelja. Apache stranica dobrodošlice trebala bi se pojaviti na vašem ekranu:

Radi!
Ovo je zadana web stranica za ovaj poslužitelj.
The web poslužitelj softver radi, ali još nije dodan sadržaj.

Hijerarhija datoteka Apache

Na Ubuntu i Debianu, Apache pohranjuje konfiguracijske datoteke u mapu /etc/apache2.

cd /etc/apache2
je -F
apache2.conf envvars magic mods-enabled/sites-available/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

Ova mapa sadrži niz jednostavnih tekstualne datoteke i poddirektorije. Najvažniji od njih:

  • apache2.conf: konfiguracijska datoteka glavnog poslužitelja. U njemu se mogu izvesti gotovo sve konfiguracije.
  • ports.conf: Ova datoteka navodi portove na kojima virtualni hostovi slušaju. Provjerite ovu datoteku prilikom postavljanja SSL-a.
  • conf.d/: Ovaj direktorij kontrolira određene aspekte Apache konfiguracije. Na primjer, često se koristi za definiranje SSL konfiguracije i standardnih sigurnosnih pravila.
  • sites-available/: Ovaj direktorij pohranjuje sve dostupne virtualne hostove, koji određuju koji će se sadržaj posluživati ​​na web mjestu. Ovi hostovi nisu aktivni.
  • sites-enabled/: Ovaj direktorij definira aktivne virtualne hostove. Obično sadrži simboličke veze na datoteke definirane u imeniku dostupnih web-mjesta.
  • mods-/: Ovi imenici rade na isti način kao sites-available i sites-enabled. Oni pohranjuju module.

Kao što možete vidjeti, Apache konfiguracije nisu ograničene na glavnu konfiguracijsku datoteku, već su raspoređene u nekoliko datoteka i direktorija. Ova konfiguracijska struktura može se proširiti novim datotekama.

Apache konfiguracijska datoteka

Osnovne Apache postavke pohranjene su u /etc/apache2/apache2.conf.

Ova datoteka sadrži tri glavna odjeljka: globalne postavke Apachea, zadane postavke poslužitelja i konfiguracije virtualnog hosta.

Na Ubuntu i Debianu većina datoteke posvećena je globalnim postavkama, a zadanom konfiguracijom poslužitelja i postavkama virtualnog hosta upravlja se na kraju datoteke pomoću direktive Include.

Na kraju datoteke pronaći ćete mnoge postavke Uključi. Oni definiraju module, dodaju dokument ports.conf, određene datoteke iz direktorija conf.d/ i postavke virtualnog hosta iz direktorija sites-enabled/.

Usredotočimo se na globalne postavke Apache web poslužitelja.

Apache Globalne postavke

Ovaj odjeljak ispituje važni parametri globalne postavke Apache.

Pauza

Prema zadanim postavkama, ovaj je parametar postavljen na 300. To znači da poslužitelj ima maksimalno 300 sekundi da dovrši svaki zahtjev. U većini slučajeva ta je vrijednost vrlo velika, pa se preporuča smanjiti na 30-60 sekundi.

Držati na životu

Ako je ova postavka uključena, poslužitelj će dopustiti klijentu da zahtijeva više objekata unutar jedne veze. Ako parametar ima Isključena vrijednost, tada će svaki novi zahtjev stvoriti pojedinačnu vezu. Ovakvo ponašanje može dovesti do preopterećenja web mjesta s velikim prometom.

MaxKeepAliveRequests

Ova vam postavka omogućuje definiranje maksimalnog broja zahtjeva po vezi. To vam omogućuje povećanje performansi Apachea.

Vrijednost 0 omogućit će web poslužitelju obradu neograničenog broja zahtjeva unutar jedne veze.

KeepAliveTimeout

Ovaj parametar postavlja vremenski interval između zahtjeva. Ako klijent nije kreirao drugi zahtjev u navedenom roku. Web poslužitelj će prekinuti vezu. Ako ovaj klijent naknadno postavi zahtjev, poslužitelj će stvoriti novu vezu.

MPM postavke

Da biste saznali s kojim modulima je kompajliran Apache, otvorite terminal i upišite:

apache2 -l
Sastavljeno u modulima:
jezgra.c
mod_log_config.c
mod_logio.c
predvilica.c
http_core.c
mod_so.c

Kao što vidite, u ovom slučaju web poslužitelj je kompiliran s modulom prefork.c i datotekom apache2.conf.

Konfiguracije virtualnog hosta

Zadani virtualni host nalazi se u zadanoj datoteci u direktoriju dostupnih stranica.

Da biste vidjeli opći format virtualnog hosta, otvorite ovu datoteku:

sudo nano /etc/apache2/sites-available/default

ServerAdmin webmaster@localhost
DocumentRoot /var/www

Opcije FollowSymLinks
AllowOverride Ništa


Opcije Indeksi FollowSymLinks MultiViews
AllowOverride Ništa
Narudžba dopusti, odbij
dopustiti od svih

. . .

Prema zadanim postavkama, virtualni host obrađuje zahtjeve na portu 80.

To ne znači da će web poslužitelj nužno obraditi svaki zahtjev na tom portu. Apache može nadjačati konfiguracije.

Postavke virtualnog hosta najviše razine

Ove postavke postavljene su u odjeljku Virtualni host i primjenjuju se na cijeli virtualni host.

Parametar ServerAdmin navodi adresu e-pošte za kontakt koja se koristi ako dođe do problema na poslužitelju. Ova se adresa može zalijepiti na stranicu s pogreškom. Da biste to učinili, parametar ServerSignature (u datoteci /etc/apache2/conf.d/security) mora biti postavljen na Email.

Direktiva ServerName navodi naziv domene ili IP adresu poslužitelja. Ovo je postavka za virtualno računalo koja može nadjačati zadane postavke ako odgovara vrijednosti ServerName.

Parametar ServerAlias ​​​​dopušta vam dodavanje pseudonima web mjesta - alternativnih imena i putova koji vode do istog sadržaja. Na primjer, alias domene često je postavljen na www.

DocumentRoot navodi direktorij u koji web poslužitelj pohranjuje sadržaj ovog virtualnog hosta. Na Ubuntuu, zadana vrijednost za ovo je /var/www.

Postavke imenika

Konfiguracija virtualnog hosta ima poseban odjeljak za konfiguriranje obrade pojedinačnih direktorija datotečnog sustava. Ove se postavke također mogu nadjačati.

Prvo, virtualni host predlaže skup pravila za / direktorij (korijenski direktorij). Ovaj odjeljak pružit će osnovnu konfiguraciju virtualnog hosta jer se odnosi na sve datoteke koje se poslužuju u datotečnom sustavu.

Prema zadanim postavkama, Ubuntu ne nameće nikakva ograničenja na datotečni sustav. Apache preporučuje dodavanje nekoliko standardnih ograničenja pristupa, na primjer:


Opcije FollowSymLinks
AllowOverride Ništa
Narudžba Odbij, Dopusti
Odbiti od svih

Ovo će blokirati pristup svim sadržajima osim ako sljedeće definicije direktorija ne pokazuju drugačije.

Parametar AllowOverride omogućuje nadjačavanje konfiguracija pomoću .htaccess datoteka. Za nadjačavanje postavki, datoteka .htaccess mora biti u direktoriju sadržaja. Prema zadanim postavkama ova značajka je onemogućena.

Postavke aliasa i ScriptAliasa

Ponekad se parametri Alias ​​​​i ScriptAlias ​​​​pojavljuju prije odjeljka Imenik.

Direktiva Alias ​​​​dopušta da se direktoriji izvan DocumentRoot-a dodaju sadržaju koji se poslužuje.

ScriptAlias ​​​​radi na sličan način, ali sadrži put do direktorija s izvršnim datotekama.

Na primjer, takva linija u virtualnom hostu za example.com omogućit će pristup sadržaju u direktoriju /path/to/content/ kada se zatraži example.com/content/.

Alias ​​​​/sadržaj/ /put/do/sadržaja/

Imajte na umu da kada otvarate pristup dodatnim imenicima, trebate postaviti ograničene privilegije na njih.

Omogućavanje web stranica i modula u Apacheu

Nakon što stvorite datoteku virtualnog hosta, možete je omogućiti. Da biste to učinili, morate stvoriti simboličku vezu na datoteku u direktoriju s omogućenim web-mjestima:

sudo a2ensite virtualhostfile

Nakon što je vaša stranica omogućena, ponovno pokrenite Apache kako biste omogućili web poslužitelju da ponovno pročita konfiguracije:

sudo servis apache2 ponovno učitaj

Da biste onemogućili virtualni host, morate ukloniti simboličku vezu sa web-mjesta omogućenih:

sudo a2dissite virtualhostfile

Nakon toga trebate ponovo pokrenuti web poslužitelj:

sudo servis apache2 ponovno učitaj

Možete omogućiti i onemogućiti Apache modul pomoću sljedećih naredbi (odnosno):

a2enmod
a2dismod

Rade isto kao i prethodno spomenute naredbe a2ensite i a2dissite. Nakon uključivanja ili isključivanja modula potrebno je ponovno pokrenuti web poslužitelj.

Zaključak

Ovaj članak pokriva samo osnovne postavke Datoteke web poslužitelja Apache. Apacheov skup značajki može se uvelike proširiti pomoću modula.

Ako trebaš dodatne informacije o web poslužitelju, obratite se

Apache je najpopularniji besplatni web poslužitelj. Od 2016. koristi se na 33% svih internetskih stranica, što je otprilike 304 milijarde stranica. Ovaj web poslužitelj razvijen je još 1995. godine kao zamjena za popularni NCSA taj poslužitelj i riješio je mnoge njegove probleme. Priča se da njegovo ime dolazi od patchy, jer je popravljao pogreške NCSA-e. Sada je to višeplatformski program koji podržava Windows, Linux i MacOS i pruža dovoljnu fleksibilnost, prilagodbu i funkcionalnost. Program ima modularnu strukturu, što vam omogućuje da proširite njegovu funkcionalnost gotovo neograničeno korištenjem modula.

Možete instalirati Apache na Linux pomoću nekoliko naredbi, ali program nudi jako velik broj postavki koje je moguće mijenjati, kao i module koji će, kada su uključeni, raditi bolje. Ovaj članak će pokriti instalaciju i konfiguraciju Apachea, mi ćemo koristiti Ubuntu kao glavni sustav, ali možete ponoviti ove korake u bilo kojoj drugoj distribuciji. Razmotrit ćemo ne samo instalaciju samog programa, već i kako ga konfigurirati, postavljanje apache virtualnih hostova, kao i najkorisnije module.

Na ovaj trenutak, najviše nova verzija programe 2.4; stoga će se razmotriti postavljanje Apache 2.4. Kao što sam već rekao, u Linux program instalira se doslovno u nekoliko naredbi. Za instalaciju na Ubuntu, prvo ažurirajte sustav na najnoviju verziju:

ažuriranje sudo apt
$ sudo apt nadogradnja

Zatim instalirajte apache2:

sudo apt instalirajte apache2

U drugim distribucijama, programski paket se zove this ili httpd i njegova instalacija vam neće uzrokovati nikakve poteškoće.

Nakon dovršetka instalacije morate dodati web poslužitelj u startup kako ga ne biste ručno pokretali nakon uključivanja računala:

sudo systemctl omogući apache2

Postavljanje Apachea

Prošli su dani kada je Apache konfiguracija bila pohranjena u jednoj datoteci. Ali to je točno: kada je sve distribuirano u vlastitim direktorijima, lakše je kretati se konfiguracijskim datotekama.

Sve postavke nalaze se u mapi /etc/apache/:

  • Datoteka /etc/apache2/apache2.conf odgovoran za osnovne postavke
  • /etc/apache2/conf-dostupan/* - dodatne postavke web poslužitelj
  • /etc/apache2/mods-available/*- postavke modula
  • /etc/apache2/sites-available/*- postavke virtualnog hosta
  • /etc/apache2/ports.conf- portovi na kojima radi apache
  • /etc/apache2/envvars

Kao što ste primijetili, postoje dvije mape za conf, mods i site. Oni su dostupni i omogućeni. Kada omogućite modul ili host, stvara se simbolička veza od dostupne mape do mape za omogućivanje. Stoga je bolje izvršiti postavke u dostupnim mapama. Općenito govoreći, mogli biste i bez ovih mapa, uzeti sve i ubaciti sve u jednu datoteku na starinski način, i sve bi radilo, ali to sada nitko ne radi.

Prvo pogledajmo glavna datoteka konfiguracije:

vi /eta/apache2/apache2.conf

Pauza- označava koliko dugo će poslužitelj pokušavati nastaviti prekinuti prijenos ili prijem podataka. Bit će dovoljno 160 sekundi.

Keep Alive On- vrlo koristan parametar, omogućuje vam prijenos nekoliko datoteka u jednoj vezi, na primjer, ne samo html stranica, ali i slike i css datoteke.

MaxKeepAliveRequests 100- maksimalan broj zahtjeva po konekciji, što više, to bolje.

KeepAliveTimeout 5- istek vremena veze, obično je 5-10 sekundi dovoljno za učitavanje stranice, tako da ne morate više postavljati, ali također ne morate prekidati vezu prije nego što se učitaju svi podaci.

Korisnik, Grupa- korisnik i grupa u čije ime će se program izvoditi.

HostnameLookups- pisati u zapisnike umjesto IP adresa imena domena, bolje ga je onemogućiti kako biste ubrzali rad.

LogLevel- razina evidentiranja pogrešaka. Prema zadanim postavkama koristi se upozorenje, ali da bi se zapisnici sporije ispunjavali, samo omogućite grešku

Uključiti- all include direktive odgovorne su za povezivanje konfiguracijskih datoteka o kojima se govorilo gore.

Direktive direktorija odgovorne su za postavljanje prava pristupa određenom direktoriju u sustavu datoteka. Sintaksa je ovdje:


Vrijednost parametra

Ovdje su dostupne sljedeće osnovne opcije:

AllowOverride- označava trebaju li se .htaccess datoteke čitati iz ovog direktorija; to su iste datoteke postavki i imaju istu sintaksu. Sve - dopustite sve, Ništa - ne čitajte ove datoteke.

DocumentRoot- postavlja iz koje mape treba uzeti dokumente za prikaz korisniku

Mogućnosti- označava koje bi značajke web poslužitelja trebale biti dopuštene u ovoj mapi. Na primjer, Sve - dopusti sve, FollowSymLinks - slijedi simboličke veze, Indeksi - prikaži sadržaj direktorija ako nema datoteke indeksa.

Zahtijevati- postavlja koji korisnici imaju pristup ovom direktoriju. Zahtijevaj sve odbijeno - zabrani svima, Zahtijevaj sve odobreno - dopusti svima. Možete koristiti direktivu korisnika ili grupe umjesto svih za izričito navođenje korisnika.

Narudžba- omogućuje kontrolu pristupa imeniku. Prihvaća dvije vrijednosti: Allow,Deny - dopušta svima osim za one koji su navedeni ili Deny,Allow - zabranjuje za sve osim za one koji su navedeni..ru.

Sve ove direktive se ovdje ne koriste, jer smo zadovoljni zadanim vrijednostima, ali u .htaccess datotekama mogu biti vrlo korisne.

Ostaje nam datoteka /etc/apache2/ports.conf:

Sadrži samo jednu direktivu, Listen, koja govori programu na kojem portu treba raditi.

Posljednja datoteka je /etc/apache2/envvars, vjerojatno je nećete koristiti, ona sadrži varijable koje se mogu koristiti u drugim konfiguracijskim datotekama.

Postavljanje Apache poslužitelja preko htaccess

Datoteke .htaccess omogućuju vam da konfigurirate svoj Ubuntu web poslužitelj da se ponaša u određenom direktoriju. Sve upute navedene u ovoj datoteci izvode se kao da su umotane u oznaku ako su bili u glavnoj datoteci.

Važno je napomenuti da kako bi poslužitelj čitao upute iz .htaccess, postavke za ovu mapu u glavnoj ili virtualnoj datoteci hosta ne smiju sadržavati AllowOverride Ništa za rad svih potrebnih postavki DopustiNadjačaj sve.

Inače, ovdje se može izvršiti bilo koja konfiguracija Apache poslužitelja, od uključivanja modula do jednostavne promjene pristupa mapi. Budući da smo već razmotrili sve parametre, navedimo samo nekoliko primjera:

Narudžba Odbij, Dopusti
Odbiti od svih

Uskraćuje svima pristup ovoj mapi, važno je primijeniti za konfiguracijske mape. Najčešće se .htaccess koristi za rad s modulom mod_rewrite, koji vam omogućuje promjenu zahtjeva u hodu:

RewriteEngine uključen
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Ali ovo je vrlo široka tema i izvan je okvira ovog članka.

Konfiguriranje Apache modula

Kao što sam već rekao, Apache - modularni program, njegova se funkcionalnost može proširiti pomoću modula. Svi dostupni moduli za učitavanje i konfiguracijske datoteke modula nalaze se u mapi /etc/apache/mods-available. I aktiviran u /etc/apache/mods-enable.

Ali ne morate analizirati sadržaj tih mapa. Konfiguriranje Apache 2.4 dodavanjem modula vrši se pomoću posebnih naredbi. Sve pokrenute module možete vidjeti naredbom:

Modul možete uključiti naredbom:

sudo a2enmod ime_modula

I onemogući:

sudo a2dismod ime_modula

Nakon što omogućite ili onemogućite module, trebate ponovno pokrenuti apache:

sudo systemctl ponovno pokrenite apache2

Kada se izvrši jedna od ovih naredbi, stvara se ili briše simbolička poveznica na datoteku modula s učitavanjem ekstenzije u direktoriju dostupnih modova. Možete pogledati sadržaj ove datoteke, postoji samo jedan red. Na primjer:

vi /etc/apache2/mods-available/deflate.load

To znači da se modul može aktivirati jednostavnim dodavanjem ove linije u datoteku apache2.conf. Ali uobičajeno je učiniti upravo to kako bi se izbjegla zabuna.

Postavke modula nalaze se u istoj mapi, samo u datoteci s nastavkom .conf umjesto učitavanja. Na primjer, pogledajmo postavke istog modula za deflate kompresiju:

vi /etc/apache2/mods-available/deflate.conf

Datoteke u mapi conf-available su isti moduli, samo su instalirani odvojeno od apachea, to mogu biti konfiguracijske datoteke za omogućavanje php modula ili bilo kojeg drugog programskog jezika. Ovdje sve radi potpuno isto, samo su naredbe za uključivanje i onemogućavanje ovih modula malo drugačije:

a2enconf ime_modula

naziv modula a2disconf

Kao što ste vidjeli, omogućavanje modula je vrlo jednostavno. Omogućimo nekoliko potrebnih modula koji nisu omogućeni prema zadanim postavkama:

sudo a2enmod ističe
$ sudo a2enmod zaglavlja
$ sudo a2enmod prepisati
$ sudo a2enmod ssl

Moduli isteka i zaglavlja smanjuju opterećenje poslužitelja. Vraćaju zaglavlje Not Modified ako se dokument nije promijenio od zadnjeg zahtjeva. Modul isteka vam omogućuje da postavite vrijeme za koje preglednik treba spremiti primljeni dokument u predmemoriju. Rewrite vam omogućuje da mijenjate tražene adrese u hodu, vrlo korisno kada kreirate CNC veze, itd. I zadnji omogućava podršku za SSL enkripciju. Ne zaboravite ponovno pokrenuti apache2 nakon dovršetka postavki.

Konfiguriranje Apache virtualnih hostova

Ne bi bilo sasvim prikladno da se samo jedno web mjesto može nalaziti na jednom fizičkom računalu. Apache može podržati stotine stranica na jednom računalu i poslužiti ispravan sadržaj za svaku od njih. Za to se koriste virtualni hostovi. Poslužitelj utvrđuje na koju domenu zahtjev dolazi i servira traženi sadržaj iz mape te domene.

Postavke Apache hostova nalaze se u mapi /etc/apache2/hosts-available/. Da biste stvorili novi host, samo kreirajte datoteku s bilo kojim nazivom (bolje je završiti s nazivom hosta) i ispunite je potrebnim podacima. Sve ove parametre trebate zamotati u direktivu VirtualHost. Uz parametre o kojima se ovdje govori, koristit će se sljedeći:

  • ServerName- naziv primarne domene
  • Alias ​​poslužitelja- dodatno ime pod kojim će stranica biti dostupna
  • ServerAdmin - E-mail administrator
  • DocumentRoot- folder s dokumentima za ovu domenu

Na primjer:

vi /etc/apache2/sites-available/test.site.conf