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.
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ář.
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.
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.
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..
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.
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.
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.
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.
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.
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.
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.
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.
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:
(povolí všem přístup) s výjimkami
(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
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.
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.
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. 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.
Tato položka je podobná Alias. Navíc říká, že soubory v cílovém adresáři jsou CGI skripty.
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.
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>