Skola:sps

Z shasko@student
Revízia z 19:56, 22. október 2012; Matiniero (Diskusia | príspevky)

(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Prejsť na: navigácia, hľadanie

Obsah

Apache

Čo je Apache?

Apache je najznámejší a najrozšírenejší webový server na internete. Názov Apache bol zvolený na počesť amerického kmeňa indiánov kvôli ich bojovým schopnostiam a vojnovej stratégii.[1]

Konfigurácia Apache

Stiahneme si TCL a naimportujeme do Virtual Box-u.

Inštalácia a spustenie

inštalácia Apache
Terminal
spustenie Apache
Terminal

Hlavný konfiguračný súbor pre Apache2 je httpd.conf a v distribúcii Tiny Core sa nachádza v /usr/local/apache2/conf/.
Všetko čo je v tomto súbore napísané bez symbolu # na začiatku považuje apache za nastavenie, každý takýto riadok sa nazýva direktíva.

Direktívy zapisujeme v tvare:
Direktiva parameter1 parameter2

Direktívy môžeme zapisovať aj do sekcií

Základné sekcie

http://httpd.apache.org/docs/2.2/sections.html

Základné direktívy[2]

AccessFileName .htaccess definuje názov distribuovaného konfiguračného súboru
ServerRoot "/usr/local/apache2" definuje koreň adresárového stromu kde sa nachádzajú konfiguračné súbory, logy a error logy. Na koniec cesty sa nedáva
Listen 12.34.56.78:80
Listen 80
umožňuje "počúvať" na inom ako defaultnom porte a ip adrese
LoadModule foo_module modules/mod_foo.so podpora Dynamic Shared Object (DSO), umožňuje pridať moduly, staticky kompilované moduly (tie v `httpd -l`) tu pridávať netreba
User tc
Group staff
pod akým používateľom sa spúšťa apache (najprv ho aj tak treba spustiť ako root)
ServerAdmin you@example.com kontakt na admina
ServerName www.example.com:80 názov servra, ak nie je registrovaný v DNS tak IP adresa
DocumentRoot "/usr/local/apache2/htdocs" Priečinok z ktorého sa nahrávajú súbory, defaultne sa nahrávaju z tohto adresára ale je možné použiť symbolické linky alebo alias-y pre presmerovanie na iné miesta
DirectoryIndex index.html Určuje čo sa zobrazí po zadaní URL ak nie je zadaný súbor.
Nakonfigurujte server tak, aby sa ako index zobrazil súbor index.php, ak sa na servri nenachádza, nech sa zobrazí index.html.


Každý priečinok do ktorého má apache prístup môže byť nakonfigurovaný podľa toho čo bude v ňom a jeho podpriečinkoch. Direktívy pre daný priečinok píšeme do sekcie Directory.

Options[3]

Hodnoty direktívy Options sú "None", "All" alebo akákoľvek kombinácia nasledujúcich: "Indexes", "Includes", "FollowSymLinks", "SymLinksIfOwnerMatch", "ExecCGI", "MultiViews". Poznámka: "MultiViews" musí byť vymenovaná explicitne, voľba "All" nestačí.

None
All 
všetko okrem MultiViews
Indexes 
ak v adresári chýba DirectoryIndex (napr. index.html) tak mod_autoindex vráti formátovaný výpis adresára
Includes 
server-side include pomocou mod_include je povolený
FollowSymLinks 
server "nasleduje" symbolické linky v adresári
SymLinksIfOwnerMatch 
server "nasleduje" len symbolické linky ktorých cieľ vlastní používateľ s rovnakým id ako vlastník linku
ExecCGI 
spúšťanie CGI skriptov pomocou mod_cgi je povolené
MultiViews 
prevod obsahu povolený pomocou mod_negotiation

Pre pridávanie a odoberanie možností pri direktíve options môžeme použiť + a -. Možnosti s +/- a tie bez nesmieme miešať.

Nakonfigurujte apache tak, aby v /usr/local/apache2/htdocs umožňoval výpis adresára ale neumožňoval nasledovanie 
symbolických linkov a v /usr/local/apache2/htdocs/1 naopak.


Vytvorte súbor u1.html v priečinku /home/tc a zabezpečte aby ho Apache  
zobrazil po zadaní adresy ServerName/1


AllowOverride[4]

Definuje ktoré direktívy je povolené nastaviť v .htaccess

None
All
Názov_direktívy
Order[5]

Definuje poradie vyhodnocovania direktív allow/deny

allow, deny
deny, allow
Allow

povolí prístup z danej adresy, Allow from all povolí prístup všetkým

Deny

zakáže prístup z danej adresy, Deny from all zakáže prístup všetkým

Zakážte prístup na server z jednej konkrétnej IP adresy.


Pre súbor admin.php povoľte len lokálny prístup.


Moduly

mod_rewrite[6]

Zabezpečuje zmenu prichádzajúcich URL requestov pomocou regulárnych výrazov. Pre povolenie musíme nastaviť RewriteEngine on (buď v .htaccess pre konkrétny adresár alebo v sekcii Directory v /usr/local/apache2/conf/httpd.conf)

RewriteCond
[NC] "no case" pre pattern podmienky
[OR] alebo dalsia podmienka

V RewriteCond môžeme použiť aj premenné servra. Viac info tu

RewriteRule

Syntax rewriterule.png[7]

flags
[R] odošle HTTP response 302 (MOVED TEMPORARILY)
[F] odošle HTTP response 403 (FORBIDDEN)
[G] odošle HTTP response 410 (GONE)
[L] "last rule", po tomto pravidle sa nevykoná žiadne ďalšie prepisovanie
[P] "force proxy", daná URL bude považovaná za request pre proxy a presmerovaná do modulu mod_proxy
[QSA] použijeme ak chceme znovu použiť "query string" alebo jeho časť
Regulárne výrazy
text
. jeden ľubovoľný znak
[znaky] jeden zo znakov
[^znaky] žiadny zo znakov
text1 ¦ text2 text1 alebo text2
kvantifikátory
? 0 alebo 1
* 0 alebo N (N>0)
+ 1 alebo N (N>1)
zgrupovanie textu
(text) zgrupovanie textu
ukotvenie
^ začiatok riadka
$ koniec riadka
Zabezpečte, aby sa po vyžiadaní súboru hello.html používateľom prehliadača lynx vrátil súbor helloLynx.html


Zabezpečte aby sa po zadaní adresy ServerName/category/192/category-name-sk 
zobrazila stránka ServerName/index.php?page=category&cat_id=192&page_lang=sk&seo_string=category-name&id=192


mod_deflate

Umožňuje ušetriť traffic kompresiou odosielaných súborov.

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Kompresia všetkých súborov, pre overenie nastavíme logovanie [8] 

<IfModule deflate_module>
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /usr/local/apache2/logs/deflate_log deflate
SetOutputFilter DEFLATE
</IfModule>

Upravte direktívy v texte vyššie tak, aby sa na servri komprimovali len súbory s príponou .php alebo html súbory


Zdroje

  1. http://www.apache.org/foundation/faq.html#name
  2. /usr/local/apache2/conf/httpd.conf
  3. http://httpd.apache.org/docs/2.2/mod/core.html#options
  4. http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride
  5. http://www.maxi-pedia.com/Order+allow+deny
  6. http://www.widexl.com/tutorials/mod_rewrite.html
  7. http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
  8. http://www.howtoforge.com/apache2_mod_deflate
Osobné nástroje
Menné priestory

Varianty
Zobrazení
Operácie
Navigácia
Škola
LS 2012/2013
ZS 2012/2013
HoneyNet
Nástroje