Pokud potřebujete zvláštní nastavení, proveďte je po instalaci
Apache. V naprosté většině případů můžete Apache používat, jak
je. Apache lze nastavit pomocí YaST a SuSEconfig nebo přímou
editací souboru /etc/apache2/httpd.conf.
Nastavení v /etc/sysconfig/apache2 jsou do
konfiguračních souborů Apache zapisována pomocí skriptu SuSEconfig.
Předkonfigurovaná nastavení by měla být vhodná pro většinu běžných
nasazení. Soubor obsahuje u každé proměnné vysvětlující komentář.
Místo zápisu změn přímo do konfiguračního souboru
/etc/apache2/httpd.conf si s pomocí
proměnné APACHE_CONF_INCLUDE_FILES
můžete vytvořit vlastní konfigurační soubor (např.
httpd.conf.local). Tento soubor pak
bude interpretován hlavním konfiguračním souborem. Tak si
zachováte vlastní nastavení i v případě přepsání souboru
/etc/apache2/httpd.conf během
reinstalace serveru.
Moduly instalované programem YaST mohou být aktivovány zapsáním jména
modulu do seznamu pod proměnnou APACHE_MODULES.
Tato proměnná se nachází v souboru
/etc/sysconfig/apache2.
APACHE_SERVER_FLAGS se používá k nastavení
návěští (flag), které aktivují či deaktivují určité části
konfiguračního souboru. Pokud je sekce v konfiguračním souboru
vymezena takto:
<IfDefine návěští> . . . </IfDefine>
aktivuje se pouze nastavením příslušného návěští v proměnné
ACTIVE_SERVER_FLAGS:
ACTIVE_SERVER_FLAGS = návěští.
Tímto způsobem lze bez problémů aktivovat či deaktivovat
poměrně rozsáhlé části konfiguračního souboru např. pro testovací
účely.
Konfigurační soubor /etc/apache2/httpd.conf
umožňuje změny, které nejsou dostupné nastavením
v /etc/sysconfig/apache2. V této části
si popíšeme některé parametry, které lze v tomto souboru nastavit.
Jsou zmíněny v pořadí, v jakém se nacházejí v konfiguračním souboru.
Jedno ze základních nastavení je DocumentRoot
určující adresář s obsahem webu. Pro výchozí virtuální server je
nastaven na /srv/www/htdocs. Obvykle toto
nastavení není nutné měnit.
Maximální počet klientů, jejichž požadavky může Apache vyřizovat
současně. Výchozí nastavení je 150, ale tato
hodnota může být pro vytíženější weby malá.
LoadModule určuje moduly, které se mají nahrát.
Pořadí nahrávání je určeno přímo moduly. Uvádějí se zde i soubory
obsahující moduly.
Určuje port, na kterém Apache naslouchá. Obvykle jde o port 80, výchozí port služby HTTP. Za normálních okolností byste toto nastavení neměli měnit. Jedním z důvodů, proč by Apache měl naslouchat na jiném portu, je test nové verze webových stránek. V takovém případě je platná verze stránek stále dostupná na portu 80.
Jiným důvodem je dostupnost stránek pouze na intranetu (z bezpečnostních
důvodů). V takovém případě nastavte např. 8080 a
zablokujte externí přístup na port firewallem. Tak bude server chráněn
proti externím přístupům.
Nastavení přístupových práv pro adresář. Tato položka existuje
i pro DocumentRoot. Jméno adresáře musí být
změněno vždy, když je změněn DocumentRoot.
Zde určíte, v jakém souboru má Apache hledat výchozí stránku.
Jako výchozí je nastavena index.html. Pokud
pak zadáte například http://www.xyz.com/foo/bar
a adresář foo/bar/ obsahuje soubor
index.html, Apache vrátí klientovi tuto
stránku.
Každý adresář Apache, ze kterého jsou doručovány dokumenty, může
obsahovat soubor, který může přepisovat globální nastavení a nastavení
přístupových práv adresáře. Tato nastavení se aplikují rekurzivně na
aktuální adresář a jeho podadresáře, dokud nejsou přepsány jiným podobným
souborem v podadresáři. Nastavení v souboru umístěném
v DocumentRoot je aplikováno globálně.
Obvykle jsou tyto soubory pojmenovány .htaccess,
ale to lze změnit (viz 30.6.2.10 – „AccessFileName“).
Pomocí AllowOverride nastavte, zda jsou tyto přepisy
globálního nastavení povoleny. Možné hodnoty jsou
None,
All a jakákoliv kombinace
Options,
FileInfo,
AuthConfig a
Limit.
Význam hodnot je popsán v dokumentaci Apache. Bezpečné
výchozí nastavení je None.
Určuje pořadí, ve kterém jsou aplikována nastavení pro Allow a Deny. Výchozí nastavení je:
Order allow,deny
Tak je nejprve aplikováno nastavení pro povolení přístupu, pak pro zákaz. Význam záznamu:
povolí veškerý přístup a určí výjimky
zakáže veškerý přístup a určí výjimky
Příklad pro deny all:
Order deny,allow Deny from all Allow from example.com Allow from 10.1.0.0/255.255.0.0
Zde zadejte jméno pro soubory, které mohou přepisovat globální
nastavení práv a další pro adresáře doručované Apachem
(viz 30.6.2.8 – „AllowOverride“).
Výchozí nastavení je .htaccess.
Určuje jméno souboru, kam se zapisují chybová hlášení Apache.
Výchozí nastavení je /var/log/httpd/errorlog.
Chybová hlášení virtuálních serverů
(viz 30.9 – „Virtuální servery“) jsou do tohoto souboru
zapisována také, pokud ovšem nebyl v sekci
VirtualHost nastaven jiný, zvláštní soubor.
Chybová hlášení jsou rozdělena do několika úrovní závažnosti.
Toto nastavení určuje, jaké stupně budou zapisovány. Nastavením
určitého stupně se budou zapisovat chybová hlášení tohoto stupně
a vyšší. Výchozí nastavení je warn.
Použitím aliasu můžete určit zkratku adresáře pro přímý přístup.
Například alias /manual/ umožňuje přístup do
/srv/www/htdocs/manual i v případě, že je
DocumentRoot nastaven na jiný adresář než
/srv/www/htdocs. Pomocí aliasu
http://localhost/manual je pak možný přímý přístup do
zmíněného adresáře. U adresáře určeného v Alias
můžete potřebovat nastavit práva, učiníte tak pomocí direktivy
Directory. Viz
30.6.2.6 – „Directory“.
Tato položka je podobná položce Alias.
Navíc říká, že soubory v cílovém adresáři jsou CGI skripty.
Server-side includes lze aktivovat vyhledáním SSI ve všech spustitelných souborech. To provedete tímto příkazem:
<IfModule mod_include.c> XBitHack on </IfModule>
Aby byl soubor s SSI vykonavatelný, použijte příkaz
chmod +x JmenoSouboru.
Jinou možností je explicitně zadat typ souborů, ve kterých se má SSI
hledat. To lze učinit následující instrukcí:
AddType text/html .shtml AddHandler server-parsed .shtml
Není rozumné nastavit .html, protože by Apache
SSI vyhledával ve všech stránkách (včetně těch, kde žádné určitě nejsou)
a došlo by ke značnému zvýšení zátěže. SUSE LINUX již tyto položky
obsahuje, není proto nutné v tomto směru nic měnit.
S pomocí modulu mod_userdir a direktivy
UserDir můžete nastavit jméno adresáře, ze kterého
se v případě jeho existence v domovském adresáři jednotlivých uživatelů
budou stránky automaticky publikovat Apachem. Toto chování lze nastavit
také skriptem SuSEconfig nastavením proměnné
HTTPD_SEC_PUBLIC_HTML na yes.
Výsledkem je následující položka v souboru
/etc/apache2/mod_userdir.conf (který je
interpretován souborem /etc/apache2/httpd.conf).
<IfModule mod_userdir.c> UserDir public_html </IfModule>