Što apache konfiguracijske datoteke ne bi trebale dopustiti. Instalacija i konfiguracija Apache poslužitelja. Preusmjeravanje HTTP zahtjeva na HTTPS

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

Hosting web stranice

Može se implementirati na četiri načina:

    Prema zadanim postavkama u mapi /var/www/html. Pristup je http://localhost/

    Glavne postavke hostinga. Na primjer, http://localhost/phpmyadmin

    U bilo kojoj mapi pomoću modula virtualnih hostova. Na primjer, http://mysite/

    U korisnikovoj mapi public_html (modul userdir). Na primjer, http://localhost/~username

Montaža

Da biste instalirali Apache, pokrenite u terminalu:

sudo apt-get instaliraj apache2

postavke

Da biste primijenili promjene u postavkama, morate ponovno pokrenuti Apache daemon: sudo service apache2 restart

U Ubuntuu je konačna konfiguracijska datoteka (apache2.conf) podijeljena u nekoliko datoteka smještenih u različitim poddirektorijima. Više detalja je napisano u komentarima datoteke. apache2.conf.

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.učitavanje | `-- *.conf |-- conf-omogućen | `-- *.conf `-- sites-enabled `-- *.conf

Postavke modula nalaze se u imeniku /etc/apache2/mods-dostupan. Da biste omogućili ili onemogućili module (postavke modula), upotrijebite odgovarajuće naredbe a2enmod ili a2dismod. Primjer spajanja modula:

sudo a2enmod< mod-name>

Vaše postavke trebaju biti spremljene u datoteke koje se nalaze u direktoriju /etc/apache2/conf-dostupan. Da biste omogućili ili onemogućili svoje postavke, koristite odgovarajuće a2enconf ili a2disconf naredbe. Primjer povezivanja datoteke s vlastitim postavkama:

sudo a2enconf< config-name>

Postavke virtualnog hosta trebaju biti spremljene u datoteke koje se nalaze u direktoriju /etc/apache2/sites-available. Za povezivanje virtualnih računala koristite odgovarajuće naredbe a2ensite ili a2dissite. Primjer povezivanja virtualnog hosta:

sudo a2ensite< site-name>

Zadano kodiranje

Za navođenje zadanog kodiranja upotrijebite direktivu AddDefaultCharset u datoteci /etc/apache2/conf-available/charset.conf(ili uklonite komentar s odgovarajućeg retka):

Dodaj zadani skup znakova UTF-8

Virtualni domaćini

Konfiguracijske datoteke virtualnog hosta pohranjene su u /etc/apache2/sites-available/*.conf. Prema zadanim postavkama, Apache već ima konfiguriran jedan virtualni host. Njegove postavke su u datoteci 000-default.conf. Ovaj virtualni host možete koristiti kao primjer.

Primjer postavljanja virtualnog hosta:

#Host name ServerName host1.server1 #Host root mapa DocumentRoot /var/www/host1.server1 #Dopuštenje za prepisivanje svih direktiva pomoću .htaccess AllowOverride All

Konfiguracijsku datoteku nazovite imenom host1.server1.conf i spremite.

Nakon kreiranja datoteke s postavkama, dodajte svoje ime glavnog računala u /etc/hosts:

127.0.0.1 host1.server1

Da biste omogućili stvoreni virtualni host, upotrijebite uslužni program a2ensite:

sudo a2ensite host1.server1

Domaćin se odspaja slično kao i pomoćni program a2dissite:

sudo a2dissite host1.server1

Moduli

mod_userdir

Modul mod_userdir omogućuje vam korištenje direktorija koji se nalaze u korisničkim kućnim imenicima za pohranu web stranica. Prema zadanim postavkama, Apache traži tražene stranice u imeniku ~/javni_html

mkdir ~/ javni_html

Da biste omogućili pokretanje mod_userdir:

sudo a2enmod korisnički direktorij

i dodajte potrebnog korisnika u www-data grupu:

sudo adduser $USER www-podaci

zatim ponovno pokrenite Apache:

Stranice će biti dostupne na http://localhost/~username, gdje je username korisničko ime.

CGI

Ako želite pokretati cgi skripte na poslužitelju, povežite cgi modul s naredbom

sudo a2enmod cgi

Prema zadanim postavkama, cgi skripte su smještene u direktorij /usr/lib/cgi-bin, ali ih možete postaviti bilo gdje navodeći to u postavkama virtualnog hosta ili globalno za sve hostove u datoteci /etc/apache2/conf-enabled/serve-cgi-bin.conf.

Ako vaš poslužitelj radi na vanjskoj mreži, tada se iz sigurnosnih razloga snažno preporučuje postavljanje cgi skripti izvan korijenskog direktorija virtualnog hosta

Postavljanje HTTPS-a u Apacheu

Web poslužitelj Apache u potpunosti podržava HTTPS. Da biste omogućili HTTPS podršku na već instaliranom Apacheu, morate učiniti sljedeće.

Izrada ključa i SSL certifikata

Upotreba samopotpisanih certifikata, iako štiti od pasivnog prisluškivanja, ne jamči klijentima da je poslužitelj upravo onakav poslužitelj koji im treba. Prednost samopotpisanih certifikata je u tome što su besplatni. Certifikat potpisan od strane Izdavača certifikata košta.

Za izradu ključa i certifikata unesite naredbu:

Openssl req -new -x509 -days 30 -keyout server.key -out server.pem

Na pitanje "Unesite PEM lozinku:" odgovaramo lozinkom, potvrđujemo i pamtimo.

Na sva sljedeća pitanja odgovaramo nasumično, možete jednostavno kliknuti na Enter, slažući se s predloženim opcijama, samo na pitanje “Common Name (npr. VAŠE ime):” odgovorite s nazivom stranice za koju izrađujemo certifikat, za primjer www.example.com.

Nakon odgovora na sva pitanja u direktoriju bi se trebale pojaviti dvije nove datoteke - server.pem (ključ) i server.crt (certifikat).

Za korištenje generiranog ključa moramo znati lozinku koju smo unijeli, a Apache će je od nas tražiti prilikom učitavanja, no zašto su nam potrebna nepotrebna pitanja demona? :) Stoga uklanjamo lozinku iz ključa:

cp server.key( ,.orig) openssl rsa -in server.key.orig -out server.key rm server.key.orig

Kopirajmo ih u /etc/ssl i dodijelimo prava čitanja datoteke ključa samo administratoru:

sudo cp server.pem / etc/ ssl/ certs/ sudo cp server.key / etc/ ssl/ private/ sudo chmod 0600 / etc/ ssl/ private/ server.key

Postavljanje Apachea

Prvo morate aktivirati mod_ssl:

sudo a2enmod ssl

Zatim omogućite zadane HTTPS postavke stranice:

sudo a2ensite default-ssl

Sada trebate urediti datoteku sa zadanim postavkama HTTPS stranice, navodeći u njoj staze do vaših certifikata. Sama datoteka se zove /etc/apache2/sites-enabled/default-ssl (ili /etc/apache2/sites-enabled/default-ssl.conf).

SSLEngine uključen

dodati liniju

SSLProtocol sve -SSLv2

da biste onemogućili korištenje naslijeđenog SSLv2 protokola.

# Javni certifikat poslužitelja SSLCertificateFile /etc/ssl/certs/server.pem # Privatni ključ poslužitelja SSLCertificateKeyFile /etc/ssl/private/server.key

Sada samo ponovno pokrenite Apache:

sudo service apache2 restart

A ako su svi parametri točno navedeni, vaše će stranice postati dostupne putem HTTPS-a.

HTTPS protokol radi na portu 443, tako da ako se poslužitelj nalazi iza pristupnika, morate mu proslijediti ovaj port.

Preusmjeravanje HTTP zahtjeva na HTTPS

Ako želite onemogućiti korištenje HTTP-a, onda je najrazumnije preusmjeriti sve HTTP zahtjeve na stranice na njihovu HTTPS adresu. Učinimo to koristeći mod_alias. Ako nije omogućeno, omogućite ga:

sudo a2enmod alias sudo service apache2 restart

Zatim mijenjamo datoteku /etc/apache2/sites-enabled/000-default, koja je odgovorna za zadani virtualni host za HTTP zahtjeve. Dodajte direktivu ovoj datoteci

Preusmjeravanje / https://example.com/

U tom slučaju, sve postavke imenika mogu se izbrisati, budući da vaše stranice još uvijek neće biti dostupne putem HTTP-a.

To je to, sada ponovno pokrenite Apache i pobrinite se da kada pristupate putem HTTP-a automatski budete preusmjereni na HTTPS stranicu.

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 instaliranje 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 glavnu konfiguracijsku datoteku:

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 imenika odgovorne su za postavljanje prava pristupa određenom direktoriju u sustav 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 je modularan program, njegova funkcionalnost se 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- email administratora
  • DocumentRoot- folder s dokumentima za ovu domenu

Na primjer:

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

Web poslužitelj je vrlo složen softverski proizvod koji radi na različite platforme i na različitim operativnim sustavima. Za ispravan rad V instalirani sustav potrebno ga je konfigurirati.

Prema zadanim postavkama Apache postavke nalaze se u datoteci " httpd.conf"u katalogu" konf".

Posebnu pozornost trebate obratiti na putanju do datoteka u Apache i PHP konfiguracijskim datotekama. Često ćete morati navesti staze do raznih direktorija i datoteka. Operativni sustavi UNIX i Windows koriste različite razdjelnike direktorija. UNIX koristi kosu crtu (/), a Windows koristi kosu crtu (\). Neke Apache i PHP direktive rade s obje vrste separatora direktorija. Ali budući da su Apache i PHP izvorno razvijeni za UNIX, možete izbjeći brojne probleme korištenjem njihovog "izvornog" formata. Stoga, staze u konfiguracijskim datotekama " httpd.conf"I" php.ini" Preporuča se pisati kroz kosu crtu u UNIX formatu - "/".

npr.:
ScriptAlias ​​​​"/php_dir/" "c:/php/" Datotečne direktive httpd.conf:

Luka- setovi TCP priključak, koji Apache koristi za uspostavljanje veze. Prema zadanim postavkama naveden je port 80. Port se također može navesti u direktivi ServerName.
Priključak 80 Jedini razlog za postavljanje nestandardnog priključka je ako nemate dozvolu za korištenje standardnog priključka. Kada koristite nestandardni port, kao što je 8080, broj porta treba biti naveden u adresi " http://localhost:8080/".

ServerAdmin- sadrži navedenu adresu E-mail Administrator web poslužitelja. Ovo je adresa koja će biti prikazana u slučaju pogreške poslužitelja.
ServerAdmin [e-mail zaštićen] ServerName- sadrži navedeno ime računala za poslužitelj.
Naziv poslužitelja lokalni host:80 ServerRoot- pokazuje na direktorij koji sadrži datoteke web poslužitelja Apache.
ServerRoot "C:/web_server/apache" DocumentRoot- definira direktorij u kojem se nalaze datoteke web stranice.
DocumentRoot "C:/web_server/apache/htdocs" Kontejner

Opseg direktiva unutar ovog spremnika proteže se na sve datoteke i poddirektorije unutar direktorija navedenog u direktivi DocumentRoot.

Opcije FollowSymLinks Uključuje indekse
DopustiNadjačaj sve
Direktiva AllowOverride postaviti na vrijednost SVI, omogućuje vam nadjačavanje vrijednosti glavne konfiguracijske datoteke " httpd.conf"u datotekama" .htaccess".

Direktiva Opcije FollowSymLinks Omogućuje Apacheu praćenje simboličkih veza.

Direktiva Opcije Uključuje omogućuje izvršavanje SSI (Server Side Includes) direktiva u kodu stranica web stranice.

Direktiva Indeksi opcija navodi da se sadržaj direktorija treba vratiti ako nedostaje datoteka indeksa.

DirectoryIndex- sadrži određeni popis indeksnih datoteka koje bi se trebale prikazati prilikom pristupa direktoriju bez navođenja naziva datoteke.
DirectoryIndex index.html index.htm index.php Direktiva ScriptAlias​​koristi se za stvaranje pseudonima za imenik " /cgi-bin/", koji sadrži CGI programe i skripte.
ScriptAlias ​​​​/cgi-bin/ "C:/web_server/apache/cgi-bin/" Zatim trebate konfigurirati prava i ograničenja na direktoriju cgi-bin.

AllowOverride Ništa
Opcije ExecCGI
Red dopustiti, odbiti
Dopusti od svih
Ova radnja je neophodna kako bi se osiguralo da se opcije imenika ne mijenjaju, jer bi to moglo stvoriti sigurnosne probleme.

Direktiva AllowOverride Ništa kaže da se opcije u ovom direktoriju ne mogu nadjačati datotekama " .htaccess".

Direktiva Opcije ExecCGI Omogućuje izvršavanje CGI skripti.

direktive nalog dopustiti, poricati I Dopusti od svih dopustiti pristup imeniku.

AddHandler- prisiljava Apache da razmatra datoteke s ekstenzijama " egz"I" šišmiš", poput CGI skripti.
AddHandler cgi-script .bat .exe Zadana vrsta postavlja zaglavlje datoteka čiji se tip ne može odrediti ekstenzijom. U ovom slučaju, sve nepoznate datoteke tretiraju se kao obične tekstualne datoteke. Za obradu svih nepoznatih ekstenzija datoteka kao HTML, promijenite direktivu na sljedeći način:
Zadana vrsta text/html AddDefaultCharset- postavlja zadano kodiranje ako kodiranje nije navedeno u glavi HTML dokumenta.
AddDefaultCharset windows-1251

Apache HTTP Server složen je softverski proizvod koji radi na različitim platformama i operativnim sustavima diljem svijeta. Stoga, da bi ispravno radio na instaliranom sustavu, mora biti konfiguriran.
Prema zadanim postavkama Apache postavke se nalaze u httpd.conf datoteci u conf direktoriju. Sljedeće će opisati glavne direktive datoteke httpd.conf i njihova često korištena značenja.

Uređivanje datoteke httpd.conf

1. Za učitavanje modula mod_rewrite pronađite i uklonite komentare (uklonite simbol “#” na početku retka) ovaj redak:
LoadModule rewrite_module modules/mod_rewrite.so
2. Za učitavanje PHP tumača morate dodati sljedeći redak na kraj bloka za učitavanje modula:
LoadModule php5_module "C:/php/php5apache2_2.dll"
3. Definirajte direktorij koji sadrži konfiguraciju PHP datoteka dodavanjem sljedećeg retka u nastavku:
PHPIniDir "C:/php"
4. Pronađite i odkomentirajte redak:
Naziv poslužitelja lokalni host:80
5. Pronađite liniju:
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
Dodijelite korijenski direktorij za upravljanje web mjestom (već ste ga stvorili malo ranije):
DocumentRoot "C:/apache"
6. Pronađite ovaj blok:

Opcije FollowSymLinks
AllowOverride Ništa
Narudžba odbiti, dopustiti
Odbiti od svih

I zamijenite ga sljedećim:

Opcije Uključuje indekse FollowSymLinks
DopustiNadjačaj sve
Dopusti od svih

7. Izbrišite ili komentirajte izvorni kontrolni blok imenika (neće nam trebati), koji bez komentara izgleda otprilike ovako:

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

8. Pronađite blok:

DirectoryIndex index.html

Zamijenite ga sa:

DirectoryIndex index.html index.htm index.shtml index.php

9. Pronađite liniju:
ErrorLog "logs/error.log"
Zamijenite sljedećim (u ovom slučaju bit će prikladnije vidjeti datoteku pogreške globalnog poslužitelja):
ErrorLog "C:/apache/error.log"
10. Pronađite redak:
CustomLog "logs/access.log" uobičajeno
Promijeniti:
CustomLog "C:/apache/access.log" uobičajeno
11. Za SSI rad (omogućavanje na strani poslužitelja) sljedeće retke, koji se nalazi u bloku , trebate pronaći i odkomentirati:
AddType text/html .shtml
AddOutputFilter UKLJUČUJE .shtml
12. Dodajte ispod, u istom bloku , dva retka:
AddType aplikacija/x-httpd-php .php
AddType aplikacija/x-httpd-php-source .phps
13. Na kraju pronađite i uklonite komentare iz retka:
Uključi conf/extra/httpd-autoindex.conf
Uključi conf/extra/httpd-vhosts.conf
Uključi conf/extra/httpd-manual.conf
Uključi conf/extra/httpd-default.conf
Spremite promjene i zatvorite datoteku "httpd.conf".

Sada otvorite datoteku "httpd-vhosts.conf" koja se nalazi u direktoriju "conf\extra" i napravite sljedeće promjene u njoj:

Postojeći blokovi primjera virtualnog hosta trebali bi se komentirati ili izbrisati i umetnuti sljedeće:

DocumentRoot "C:/apache/localhost/www"
Naziv poslužitelja lokalni host
ErrorLog "C:/apache/localhost/error.log"
CustomLog "C:/apache/localhost/access.log" uobičajeno

Primjer kreiranja virtualnog hosta

Ako trebate instalirati vlastite virtualne hostove, učinite sljedeće:

Otvorite datoteku "httpd-vhosts.conf" i u njoj napravite blok približno sljedećeg sadržaja:

# Mapa u kojoj će biti korijen vašeg hosta.
DocumentRoot "C:/apache/test.ru/www"
# Domena putem koje možete pristupiti virtualnom hostu.
Naziv poslužitelja test.ru
# Alias ​​​​(dodatno ime) domene.
Alias ​​servera www.test.ru
# Datoteka u koju će se zapisivati ​​pogreške.
ErrorLog "C:/apache/test.ru/error.log"
# Dnevnik pristupa hostu.
CustomLog "C:/apache/test.ru/access.log" uobičajeno

Zatim u imeniku "apache" stvorite mapu "test.ru" (samo tako, s točkom), u kojoj, pak, stvorite mapu "www".

Sljedeći korak u stvaranju virtualnog hosta je promjena datoteke C:\WINDOWS\system32\drivers\etc\hosts operacijski sustav. Otvoren ovu datoteku i dodajte mu dva retka:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

Sada ponovno pokrenite Apache poslužitelj pomoću prečaca "Restart" koji se nalazi u izborniku "Start", otvorite preglednik, unesite test.ru ili www.test.ru u adresnu traku i naći ćete se u svom virtualnom hostu. Samo budite oprezni, sada možete doći do izvorne stranice s nazivom virtualnog hosta (www.test.ru ako postoji) samo komentiranjem ili brisanjem retka: 127.0.0.1 www.test.ru, u gornjem -spomenuta datoteka "hosts".

Apache dokumentacija, s pokrenutim poslužiteljem, dostupna je na http://localhost/manual/

Instalacija i konfiguracija Apache web poslužitelja je završena.

Stvaranje batch datoteka za pokretanje i zaustavljanje usluga

Složite se da ručno uređivanje datoteke "hosts" svaki put kada pokrenete servise nije zgodno, pa ćemo za prikladnije, istovremeno pokretanje Apache, MySQL servisa i mijenjanje datoteke "hosts" stvoriti dvije skupne datoteke: za pokretanje i zaustavljanje, koje će izvesti sve rutinski rad automatski.

Kada koristite virtualne hostove, morate kreirati dvije datoteke u direktoriju C:\apache: vhosts-off.txt - koja sadrži početni sadržaj datoteke "hosts" i vhosts-on.txt - koja sadrži sve virtualne hostove. Imajte na umu da ćete ih prilikom izrade novih virtualnih računala morati dodati u datoteku vhosts-on.txt, a ne u C:\WINDOWS\system32\drivers\etc\hosts. Pogledajte primjere u nastavku.

Datoteka vhosts-off.txt (može sadržavati jedan red):
127.0.0.1 lokalni host

Primjer datoteke vhosts-on.txt s virtualnim hostovima www.test.ru i test.ru:

127.0.0.1 lokalni host
127.0.0.1 www.test.ru
127.0.0.1 test.ru

U istom direktoriju C:\apache kreirajte dvije batch datoteke: start-webserver.bat – za pokretanje usluga i zamjenu datoteke „hosts“ i stop-webserver.bat – za zaustavljanje usluga i brisanje datoteke „hosts“.

Pokrenite datoteku start-webserver.bat:

@echo isključen
jeka.
ako ne postoji C:\apache\vhosts-on.txt goto no_vhosts
echo Stvorite virtualne hostove:
kopiraj /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
jeka.
:no_vhosts
NET pokrenuti Apache 2.2
NET pokrenite MySQL

Zaustavi datoteku stop-webserver.bat:

@echo isključen
jeka.
ako ne postoji C:\apache\vhosts-off.txt goto no_vhosts
echo Vrati host datoteku:
kopiraj /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
jeka.
:no_vhosts
NET zaustavi Apache 2.2
NET zaustavi MySQL

Ako ne koristite virtualne hostove ili želite pokrenuti usluge bez zamjene datoteke "hosts", jednostavno uklonite datoteke vhosts-on.txt i vhosts-off.txt iz direktorija C:\apache.

Prethodno u našoj seriji na Osnove Linuxa Pogledali smo osnove rada s web poslužiteljem Apache. To je svjetski najkorišteniji web poslužitelj na internetu (u srpnju 2015. Apache je imao 38% udjela, IIS 26%, a Nginx 15%). Stoga, što više znate o njemu i razumijete kako radi, to ćete više uspjeha postići u njegovom hakiranju.

Danas ćemo pogledati osnove postavljanja Apache poslužitelja. Kao što smo ranije napisali, konfiguracija i konfiguracija gotovo svih aplikacija u Linuxu ili Unixu provodi se putem konfiguracijskih datoteka, koje su čisti tekst. Apache ovdje nije iznimka. Stoga ćemo se u ovom članku usredotočiti na konfiguracijsku datoteku apache2.conf koja se nalazi u /etc/apache2 direktoriju.

Korak 1: Pokrenite Apache2

Počnimo s pokretanjem Apache2. Učinimo to kroz Kali grafičku ljusku odlaskom na Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, kao što je prikazano na slici ispod.

Ili ga pokrenite putem naredbeni redak upisivanjem sljedeće naredbe u terminal

Kali >servis apache2 start

Ovo pokreće Apache2 daemon i od sada bi web poslužitelj trebao posluživati ​​naš sadržaj na Internetu.

Korak 2: Provjerite ispravnost poslužitelja

Kako bismo provjerili radi li naš Apache poslužitelj, jednostavno idimo na localhost ili 127.0.0.1 u pregledniku. Ako vidite stranicu poput ove na slici ispod, to znači da poslužitelj radi dobro!

Korak 3: Otvorite konfiguracijsku datoteku

Da bismo konfigurirali Apache, moramo otići u direktorij /etc/apache2.

Kali > cd /etc/apache2

Prikažimo popis svih datoteka u ovom direktoriju:

Kali > ls -l

Kao što vidite, postoji nekoliko datoteka i poddirektorija u ovom direktoriju. Za sada nas zanima samo datoteka apache2.conf, ali imajte na umu da imamo datoteku ports.conf i mapu sites_available koja će nam trebati malo kasnije, a tu je i nekoliko drugih konfiguracijskih datoteka i mapa .

Možemo otvoriti apache2.conf u bilo kojem uređivač teksta, ali ovdje ćemo koristiti Leafpad. Datoteka se može otvoriti jednostavnim upisivanjem u konzolu:

Kali > jastučić /etc/apache2/apache2.conf

Kao što vidite, otvara se ova naredba tekstualna datoteka sa svim informacijama o konfiguraciji našeg Apache web poslužitelja. Za postavljanje poslužitelja sada ćemo vas pokušati upoznati sa svim ključnim točkama ove datoteke.

Korak 4: ServerRoot

Pomaknimo se prema dolje, preskačući sve komentare, i pronađimo redak #70, gdje počinje odjeljak globalnih postavki. Ovdje vidimo postavke ServerRoot-a. Ovo je vrh stabla direktorija u kojem Apache poslužitelj pohranjuje sve datoteke povezane s poslužiteljem. Redak #84 definira ServerRoot. Možemo jednostavno odkomentirati ovaj redak ako želimo postaviti /etc/apache2 kao ServerRoot. Preporučujemo da to učinite.

Korak 5. Isteklo vrijeme

U sljedećem odjeljku imamo varijable koje određuju vrijednosti parametara: Timeout, KeepAlive, MaxKeepAliveRequests i KeepAliveTimeout.

  • Pauza: Ovo je vrijeme unutar kojeg poslužitelj mora ispuniti zahtjev korisnika. Njegova zadana vrijednost je 300, što znači da poslužitelj mora obraditi svaki zahtjev unutar 300 sekundi ili 5 minuta. Ovo je definitivno predugo i moglo bi se postaviti na 30 sekundi.
  • Držati na životu: To znači da poslužitelj ostaje živ (drži vezu) za više zahtjeva od istog klijenta. Zadana postavka je Uključeno. To znači da klijenti ne moraju stvarati novu vezu za svaki zahtjev našem poslužitelju. Ovaj vam pristup omogućuje uštedu resursa poslužitelja.
  • MaxKeepAliveRequests: Ova vrijednost specificira najveći dopušteni broj sekundi između zahtjeva primljenih od uspostavljene veze na istog klijenta. Ako ovu vrijednost postavimo na 0, tada je količina vremena neograničena.
  • KeepAliveTimeout: Ovo je količina vremena između zahtjeva da se utvrdi da je veza još živa (uspostavljena).

Predlažemo da sve vrijednosti ostavite na njihovim zadanim postavkama osim parametra Timeout. Svaka je situacija drugačija i možda ćete morati promijeniti ove zadane postavke kako biste prilagodili performanse poslužitelja vašem specifičnom okruženju.

Korak 6: Apache2 korisnik i grupe

Pomaknimo se ponovno nekoliko redaka u datoteci apache2.conf dok ne dođemo do retka #177. Ovdje možemo postaviti Apache2 korisnika i grupe. Obratite pažnju na komentar na retku #177. Navodi da ove varijable možemo postaviti u datoteci envvars ( varijable okoline). Ovo ćemo pitanje ostaviti za neki budući članak, ali za sada imajte na umu da su i Korisnik i Grupa varijable čije su vrijednosti preuzete iz /etc/apache2/envvars datoteke.

Konačno, posljednji odjeljak, koji je od velike važnosti za sigurnost Apachea, počinje u retku #193. Ovaj odjeljak osigurava da web klijenti ne mogu pristupiti datotekama .htaccess i .htpasswd.

Korak 7. Zapisivanje

Sljedeći odjeljak opisuje kako Apache upravlja zapisnicima.

U prvom pododjeljku bavimo se parametrom HostNameLookups. Ova direktiva govori Apache2 treba li izvršiti DNS pretraživanje kada piše u dnevnik. uspostavljena veza. Uz zadanu vrijednost "Isključeno" Apache2 radi mnogo bolje.

Korak 8: Dostupna mjesta

Sada pogledajmo direktorij site_available (dostupne stranice) i, što je najvažnije, datoteku koja se u njemu nalazi prema zadanim postavkama. Ovo se često naziva zadana datoteka Virtual Hosts. Otvorite ovu datoteku upisivanjem u konzolu:

Kali > leafpad /etc/apache2/site_available/default

Kao što vidite, postoje tri kritična područja u ovoj datoteci. Prvi redak navodi na kojem portu web poslužitelj sluša. Ovdje je definirano slušati bilo koje sučelje na portu 80 (*:80). Drugi redak navodi e-mail adresu na koju treba slati obavijesti u slučaju problema s poslužiteljem. Prema zadanim postavkama postoji adresa Ako ste Administrator sustava, onda ovdje možete unijeti svoju adresu e-pošte. Treći element može biti najvažniji - DocumentRoot. Određuje gdje će se nalaziti sadržaj za ovaj virtualni host, a zadana je /var/www direktorij. Predlažemo da ostavite sve kako su definirali programeri.

Korak 9. Priključci

Konačno, možemo ići još niže u datoteci apache2.conf do retka #248 - “include port.conf”. Ova direktiva jednostavno govori Apacheu da uđe u datoteku port.conf kako bi pronašao portove koje treba slušati.



reci prijateljima