30.6. Nastavení

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.

30.6.1. Konfigurace pomocí skriptu SuSEconfig

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ář.

30.6.1.1. Vlastní konfigurační soubory

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.

30.6.1.2. Moduly

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.

30.6.1.3. Návěští

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.

30.6.2. Ruční nastavení

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.

30.6.2.1. DocumentRoot

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.

30.6.2.2. Timeout

Nastavení timeoutu pro dotazy.

30.6.2.3. MaxClients

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á.

30.6.2.4. LoadModule

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.

30.6.2.5. Port

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.

30.6.2.6. Directory

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.

30.6.2.7. DirectoryIndex

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.

30.6.2.8. AllowOverride

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.

30.6.2.9. Order

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:

allow all

povolí veškerý přístup a určí výjimky

deny all

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

30.6.2.10. AccessFileName

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.

30.6.2.11. ErrorLog

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.

30.6.2.12. LogLevel

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.

30.6.2.13. Alias

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“.

30.6.2.14. ScriptAlias

Tato položka je podobná položce Alias. Navíc říká, že soubory v cílovém adresáři jsou CGI skripty.

30.6.2.15. Server-Side Includes

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.

30.6.2.16. UserDir

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>

SUSE LINUX Příručka správce systému 9.3