23.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í skriptu SuSEconfig nebo přímou editací souboru /etc/apache2/httpd.conf. Pokud chcete editovat /etc/apache2/httpd.conf, nastavte proměnnou

ENABLE_SUSECONFIG_APACHE="yes"

v /etc/sysconfig/apache2 na no. Tak zamezíte skriptu SuSEconfig, aby přepsal vaše změny /etc/apache2/httpd.conf.

23.6.1. Konfigurace pomocí skriptu SuSEconfig

Nastavení v /etc/sysconfig/apache (a /etc/sysconfig/apache2) jsou do konfiguračního souboru 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ář.

23.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 při nové instalaci serveru.

23.6.1.2. Moduly

Moduly instalované programem YaST mohou být aktivovány nastavením příslušné proměnné v souboru /etc/sysconfig/apache na yes (Apache 1.3) nebo vložením jména modulu do seznamu proměnné APACHE_MODULES (Apache 2). Tato proměnná se nachází v souboru /etc/sysconfig/apache2.

23.6.1.3. Flagy

APACHE_SERVER_FLAGS se používá k nastavení flagů, které aktivují či deaktivují určité části konfiguračního souboru. Pokud je sekce v konfiguračním souboru vymezena takto:

<IfDefine someflag> 
. 
.
. 
</IfDefine> 

aktivuje se pouze nastavením příslušného flagu ACTIVE_SERVER_FLAGS:

ACTIVE_SERVER_FLAGS = ... someflag ...

Tímto způsobem pak lze bez problémů aktivovat či deaktivovat poměrně rozsáhlé části konfiguračního souboru..

23.6.2. Ruční nastavení

23.6.2.1. Konfigurační soubory

Konfigurační soubor /etc/apache2/httpd.conf (nebo /etc/apache2/httpd.conf) umožňuje změny, které nejsou dostupné editací souboru /etc/sysconfig/apache nebo /etc/sysconfig/apache2. V této sekci si popíšeme některé parametry, které lze v tomto souboru nastavit. Parametry jsou nastaveny v pořadí, v jakém se nacházejí v konfiguračním souboru.

23.6.2.2. DocumentRoot

Jedno ze základních nastavení je DocumentRoot určující adresář s obsahem webu. Pro virtuální server je nastaven na /srv/www/htdocs. Obvykle toto nastavení není nutné měnit.

23.6.2.3. Timeout

Nastavení timeoutu pro dotazy.

23.6.2.4. 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á. v Apache 1 je hodnota modifikována skriptem SuSEconfig pomocí proměnné HTTPD_PERFORMANCE.

23.6.2.5. LoadModule

LoadModule určuje moduly, které se mají nahrát. V Apache 1.3 jsou moduly nahrávány v uvedeném pořadí. V Apache 2 je pořadí ovlivňováno přímo moduly. Uvádějí se zde i soubory obsahující moduly.

23.6.2.6. 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 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. V takovém případě nastavte hodnotu jako např. 8080 a zablokujte externí přístup na port firewallem. Tak bude server chráněn proti externím přístupům.

23.6.2.7. 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 se změnou DocumentRoot.

23.6.2.8. 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 existující v DocumentRoot, Apache vrátí klientovi tuto stránku.

23.6.2.9. AllowOverride

Každý adresář Apache, ze kterého jsou doručovány dokumenty, může obsahovat soubory, které mohou 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 není přepsán poslední soubor v posledním podadresáři. Nastavení v DocumentRoot je aplikováno globálně. Obvykle jsou tyto soubory nazvány .htaccess.

Pro nastavení povolení přepisu lokálních souborů použijte AllowOverride . 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é nastavení je None.

23.6.2.10. Order

Nastavení přístupových práv pro aplikace Allow a Deny. Výchozí nastavení je:

Order allow,deny

Nejdřív je aplikováno povolení a pak zákaz.

Význam záznamu:

allow all

(povolí všem přístup) s výjimkami

deny all

(zakáže všem přístup) s výjimkami

Příklad:

Order deny,allow
Deny from all
Allow from example.com
Allow from 10.1.0.0/255.255.0.0

23.6.2.11. AccessFileName

Zde uvedete soubory, které mohou přepisovat globální nastavení práv a další adresáře doručované Apachem (viz. 23.6.2.9 – „AllowOverride“). Výchozí nastavení je .htaccess.

23.6.2.12. 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 23.9 – „Virtuální počítače“) jsou do tohoto souboru zapisována také bez ohledu na nastavení ve VirtualHost.

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

23.6.2.14. Alias

Použitím aliasu můžete určit zkratku adresáře. 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. S aliasem http://localhost/manual je povolen přístup do určitého adresáře.

U adresáře určeného v Alias můžete potřebovat provést nastavení v Directory, kde omezíte pro tento adresář přístupová práva.

23.6.2.15. ScriptAlias

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

23.6.2.16. Server-Side Includes

Server-side includes lze aktivovat vyhledává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 se SSI vykonavatelný, použijte následující příkaz:

chmod +x <JmenoSouboru>

Alternativně lze pevně zadat typ souborů obsahujících SSI. To lze provést pomocí následujícího nastavení:

AddType text/html .shtml
AddHandler server-parsed .shtml

Není rozumné nastavit verb1.html1, protože pak bude Apache SSI vyhledávat ve všech stránkách a dojde k značnému zvýšení zátěže. SUSE LINUX již tyto položky obsahuje a proto je obvykle není nutné měnit.

23.6.2.17. UserDir

S pomocí mod_userdir a 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 pomocí serveru Apache. Toto chování lze nastavit také pomocí skriptu pomocí proměnné HTTPD_SEC_PUBLIC_HTML. Aby došlo k publikaci, je nutné proměnnou nastavit na yes. Výsledkem nastavení je soubor /etc/httpd/suse_public_html.conf (interpretovaný /etc/apache2/httpd.conf).

<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>

SUSE LINUX 9.2