Příloha 1 - Konfigurační direktivy webového serveru Apache Tyto konfigurační direktivy jsou zde popsány v posloupnosti tak, jak se nalézají v konfiguračním souboru serveru Apache verze 2.0.43.
ServerRoot "C:/Program Files/Apache Group/Apache2" - adresář, kam byl www server nainstalován - uloženy konfigurace, logy a potřebné rozšiřující funkce ScoreBoardFile logs/apache_runtime_status - definuje umístění stavového souboru serveru. Tento soubor využívá Apache ke komunikaci se synovskými procesy PidFile logs/httpd.pid - označení souboru, v kterém je uloženo PID procesu spuštěného serveru Apache Timeout 300 - jaký časový posun, v sekundách, je povolen mezi přijetím požadavku a jeho odesláním KeepAlive On - jestliže má webový démon udržovat spojeni s klientem MaxKeepAliveRequests 100 - jestliže je KeepAlive ON, tak značí kolik má spojení zachovávat KeepAliveTimeout 15 - kolik sekund se má čekat na další požadavek na aktuálním spojení od stejného klienta ThreadsPerChild 250 - říká serveru, kolik povelů může podřízený proces využívat. - to je maximální počet spojení, které může server udržet v jednom MaxRequestsPerChild 0 - kolik dotazů od uživatelů může server vyřídit pro řízení procesu - pokud se dosáhne určené hodnoty, pak se musí další požadavek předat dalšímu pořízenému procesu vzhledem k hlavním procesu serveru Listen 80 - na jakém portu webový démon naslouchá
P1
Příloha 1 - Konfigurační direktivy webového serveru Apache LoadModule … - umožňuje nahrát jakoukoliv funkci (modul), který není ve standardní konfiguraci - různé autorizace uživatelů - povolení vkládání částí skriptů - nějaké konfigurační data lze „vytáhnout“ mimo hlavní skripty - přehlednost # ExtendedStatus On - pokud se potřebuje ladit samotný server – rozšířený výpis informací ServerAdmin
[email protected] - emailová adresa na admina severu ServerName jmeno:80 - jméno webového serveru - nepovinný parametr za dvojtečkou – označuje číslo portu UseCanonicalName On - určuje, zda server při konstrukci odkazů směřujících na sama sebe použije při nastavení on obsah direktiv ServerName a Port pro tvorbu "kanonického" jména, nebo se při nastavení off použije jméno serveru a portu, který získá z hlavičky dotazu od klienta. - kanonické jméno - veřejná jedna IP adresa má svůj alias v rámci DNS DocumentRoot "C:\html" - umístění zdrojových dokumentů
Options FollowSymLinks AllowOverride None -
- umožňuje aplikovat určité direktivy na daný adresář. - Options - nastavuje v daném adresáři varianty chování serveru.- jednotlivé volby se mohou kombinovat: o All – povoluje vše (MultiViews) o None - vše je zakázáno o ExecCGI - povoluje provádění CGI skriptů o Includes - lze používat serverem vkládané vsuvky o IncludesNOEXEC - totéž co předchozí, ale je zakázáno používat #include v CGI skriptech a #exec kdekoliv o FollowSymLinks – povoluje používat symbolické odkazy o SymLinksIfOwnerMatch totéž co předchozí volba, avšak vlastník odkazu i vlastník cílového souboru či adresáře musí být tentýž uživatel (mírně zpřehledňuje předchozí volbu)
P2
Příloha 1 - Konfigurační direktivy webového serveru Apache o Indexes – web server zde smí vytvářet stránky s obsahem (indexy), nenachází-li se v daném adresáři hlavní soubor, který je definován v DirectoryIndex - AllowOverride - specifikuje typy přístupových direktiv, které mohou být změněny v souboru .htaccess o All - lokální konfigurace překryje globální (pouze tag ) o None - lokální konfigurace jsou ignorovány o AuthConfig - lze nastavit individuální přístupová práva uživatelů o FileInfo - lze definovat charakteristiky souborů (kódování, jazyk, MIME typ) o Indexes - vytvoření obsahu adresářů - Order allow,deny - určuje v jakém pořadí se zpracovávají allow,deny. - Allow from all - adresář je zpřístupněn všem. UserDir "My Documents/My Website" - pokud uživatelé mají mít možnost publikovat www z adresy http://domena/~uzivatel DirectoryIndex index.html index.html.var index.php index.htm - jaký typ souborů se má hledat při otevření adresáře - pokud v jednom adresáři je nalezeno více souborů ale s různými příponami, je zde nastaveno pořadí zpracování AccessFileName .htaccess - jestliže adresář obsahuje zadaný soubor, tak řízení přístupu k tomuto adresáři se řídí podle tohoto souboru. Order allow,deny Deny from all - pro deklaraci autorizace přístupu je zvykem deklarovat soubory se seznamem uživatelů a přístupů přímo do konkrétního adresáře do souborů .htpasswd a .htgroups. Je vhodné omezit jejich zobrazování při dotazu klienta pomocí regulárního výrazu. TypesConfig conf/mime.types - poloha souboru mime.types, který definuje MIME typy jednotlivých souborů - podle MIME typu souboru, pak server pozná, zda-li se jedná např.: o textový či jiný soubor. DefaultType text/plain - výchozí typ, který se vloží do hlavičky odesílaného dokumentu, pokud není server schopen jinak určit jeho obsah
P3
Příloha 1 - Konfigurační direktivy webového serveru Apache MIMEMagicFile conf/magic - jestliže není modul zaveden, provede se zavedení, které umožní serveru určit typ souboru pomocí prvních několika bajtů HostnameLookups Off - direktiva řídí, zda se bude pro každého klienta zjišťovat z IP adresy i jeho jméno EnableMMAP off - tato direktiva ovládá zda httpd smí používat mapu paměti jestliže potřebuje číst obsah souboru během doručení ErrorLog logs/error.log - kam se logují případné chyby běhu démona LogLevel warn - nastavení úrovně logování (debug, info, notice, warn, error, crit, alert, emerg) LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent - typ zápisu do logového souboru, můžeme ovlivnit tímto příkazem, kde se definuje (viz třetí parametr u příkazu CustomLog) schéma. CustomLog logs/access.log common - logový soubor pro několik druhů akcí - logování druhu www prohlížečů (agent.log) - přístupů na server (access.log) - referenci přístupů (referer.log) ServerTokens Full - identifikaci serveru v HTTP hlavičce - možnosti | OS | Minor | Minimal | Major | Prod - při parametru Prod se vloží do hlavičky pouze Apache ServerSignature On - při výskytu problému běhu démona, má-li se vypsat info o serveru
P4
Příloha 1 - Konfigurační direktivy webového serveru Apache Alias /icons/ "C:/Program Files/Apache Group/Apache2/icons/" Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all - lze nastavit libovolný adresář na disku jako přímý odkaz a nastavit mu vlastnosti - např. cesta k adresáři icons v podadresáři Apache2 se jeví později jako www.server.cz/icons ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache2/cgi-bin/" AllowOverride None Options None Order allow,deny Allow from all - obdoba předchozí direktivě, pouze rozšíření o skript Redirect permanent /foo http://www.example.com - umožňuje stálé připojení v případě otevření složky /foo IndexOptions VersionSort - nastavuje vlastnosti výpisu vygenerovaného adresářového seznamu AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe - definuje, jaké ikony se přiřazují jednotlivým zobrazovaným souborům při listování adresáře DefaultIcon /icons/unknown.gif - jestliže se neurčí typ souboru, použije se implicitní ikona ReadmeName README.html - zobrazení souboru při výpisu adresáře - dole HeaderName HEADER.html - zobrazení souboru při výpisu adresáře - nahoře
Příloha 1 - Konfigurační direktivy webového serveru Apache P5
IndexIgnore .??* *~ HEADER* README* - seznam souborů, které se mají ignorovat při výpisu adresáře. Ignoruje všechny soubory začínající tečkou nebo tildou(~) a dále soubory HEADER* a README* AddEncoding x-compress Z AddEncoding x-gzip gz tgz - definuje příponu použitou pro různé druhy kódování (šifrovací software, kompresní programy ap) DefaultLanguage nl - pokud nelze určit jazyk dokumentu, implicitně se nastaví nl AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage he .he - definuje příponu použitou k rozlišení jazyka (přípona dle MIME klasifikace - např. en, fr, de, cz) LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw - jaké dokumenty se mají nejdříve zobrazovat - pokud by existoval odkaz na file.html, tak by Apache nejdříve zobrazil soubor file.html.en pak file.html.da ltd. AddDefaultCharset Windows-1250 - implicitní nastavení znakové sady AddCharset ISO-8859-1 AddCharset UTF-8 - rozšiřuje znakové sady
.iso8859-1 .latin1 .utf8
AddType application/x-tar .tgz AddType image/x-icon .ico -definuje explicitně typ souboru (dle MIME) podle přípony AddHandler - přidává ovladač interní reprezentace akce, prováděné, když je spouštěn soubor, které jsou ovládány odděleně
Příloha 1 - Konfigurační direktivy webového serveru Apache
P6
AddHandler cgi-script .cgi - možnost spouštění cgi scriptu AddHandler send-as-is asis - pošle soubor s HTTP hlavičkou tak jak je Alias /error/ "@exp_errordir@/" AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en de es fr it nl sv ForceLanguagePriority Prefer Fallback ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var ErrorDocument 500 "The server made a boo boo." ErrorDocument 404 /missing.html ErrorDocument 404 "/cgi-bin/missing_handler.pl" ErrorDocument 402 http://www.example.com/subscription_info.html - definuje soubor s chybovým textem pro chybový kód BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 forceresponse-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully - modifikace chování odezvy serveru na základě identifikace klientů
P7
Příloha 1 - Konfigurační direktivy webového serveru Apache SetHandler server-info Order deny,allow Deny from all Allow from .intr.cz - umožňuje aplikaci direktiv uvedených v bloku na uvedené URL. Include conf/ssl.conf - je-li definován modul tak se aplikují direktivy uvedené v bloku, jinak se direktivy ignorují. NameVirtualHost *:80 - jakékoliv jméno dotazované na port 80, je pokus o spuštěni virtuálního serveru ServerAdmin [email protected] DocumentRoot /www/docs/dummy-host.example.com ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common - administrátorský mail admina, zdrojové dokumenty pro virtuální server, jméno serveru, logování chyb
P8
Příloha 2 - Konfigurační direktivy PHP Tyto konfigurační direktivy jsou zde popsány v posloupnosti tak, jak se nalézají v konfiguračním souboru PHP verze 4.2.3.
engine = On - zakazuje spouštění PHP short_open_tag = On - místo
P9
- při nastaveném bezpečném režimu, kontrola přístupu podle skupin uživatelů safe_mode_include_dir = - cesta k adresáři, kde jsou uloženy soubory k vkládání, pokud je zapnut bezpečný režim safe_mode_exec_dir = - cesta k adresáři, kde jsou uloženy skripty, pokud je zapnut bezpečný režim open_basedir = - určuje adresář ze kterého je možné spouštět skripty PHP - pokud je tato direktiva použita nelze spouštět soubory v jiných adresářích safe_mode_allowed_env_vars = PHP_ - při bezpečném režimu mohou uživatelé měnit proměnné z prostředí PHP začínající předponou PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH - proměnné, které jsou chráněny proti přepsání v bezpečném režimu disable_functions = - možnost zákazu ještě dalších libovolných funkcí highlight.string = highlight.comment = highlight.keyword = highlight.bg = highlight.default = highlight.html = - zvýraznění syntaxe řetězce
#CC0000 #FF9900 #006600 #FFFFFF #0000CC #000000
expose_php = On - přidává do hlavičky informaci, zda PHP je na serveru nainstalováno max_execution_time = 30 - maximální doba provádění skriptu memory_limit = 16M - maximální přidělená paměť
P 10
Příloha 2 - Konfigurační direktivy PHP error_reporting = E_ALL & ~E_NOTICE - všechny chyby kromě poznámek - přehled označení pro různé druhy chyb uvedeny v php.ini - určuje, které chybové hlášky budou zobrazovány display_errors = On - nastavení zobrazování chyb display_startup_errors = On - jestliže je display_errors povolený, chyby během spouštění PHP jsou zobrazena log_errors = Off - logování jednotlivých chyb track_errors = Off - uložení poslední chyby v proměnné $php_errormsg html_errors = Off - zabraňuje vkládání HTM značek do zobrazovaných hlášek o chybách error_prepend_string = "" - určuje řetězec, který bude vložen před vypsanou chybovou hlášku error_append_string = "" - určuje řetězec, který bude vložen za vypsanou chybovou hlášku error_log = filename - zaznamenávání chyb do speciálního souboru error_log = syslog - logování do centrální logovacího souboru (systémy NT a LINUX) arg_separator.output = "&" - oddělovač pro argumenty generované URL odkazem arg_separator.input = ";&" - seznam oddělovačů argumentů vkládaných do URL odkazu
P 11
Příloha 2 - Konfigurační direktivy PHP variables_order = "EGPCS" - při použití proměnné $_REQUEST, je dobré vědět, v jakém pořadí jsou v ní proměnné uloženy - také určuje, které superglobální proměnné jsou k dispozici - GET, POST, Cookie, Environment a Built-in register_globals = Off - nastavení globálních proměnných register_argc_argv = On - nastavení parametrů argc a argv jako globální proměnné post_max_size = 8M - maximální velikost dat příjmána metodou POST magic_quotes_gpc = On - obrana před MySQL Injection – implicitně vkládá ‘\’ před escape znaky ( zpětné lomítko, uvozovky apod.) magic_quotes_runtime = Off - předchozí vlastnost pro generovaná data na straně serveru – například načítání souboru auto_prepend_file = auto_append_file = - automatické přidání skriptu před a za samotný dokument default_mimetype = "text/html" - nastavuje implicitní typ souborů obsahující PHP skripty podle MIME typů default_charset = "iso-8859-1" - nastavení kódování always_populate_raw_post_data = On - proměnná $HTTP_RAW_POST_DATA bude vždy vyplněna include_path = ".;c:\php\includes" - určuje, kde budou hledány soubory pro vkládání - pokud je direktiva vypnutá platí vždy aktuální adresář
P 12
Příloha 2 - Konfigurační direktivy PHP doc_root = - určuje odkud jsou čteny skripty, pokud je PHP spuštěno v bezpečném režimu user_dir = - specifikuje uživatelský adresář pro PHP skripty extension_dir = ./ - adresář, kde jsou umístěny dynamické knihovny enable_dl = On - povoluje používání dynamických knihoven cgi.force_redirect = 1 - nutno zapnout jestliže běží PHP jako CGI skript pod webovým serverem. cgi.redirect_status_env = - jestliže je cgi.force_redirect zapnutý a webový démon jej jiný než Apache nebo Netscape. je nutné nastavit tuto proměnnou, která bude PHP hledat file_uploads = On - povoluje pomoci http upload souborů na server upload_tmp_dir = - určuje, kam se dočasně budou ukládat soubory získané uploadem upload_max_filesize = 2M - určuje maximální velikost uploadovaného souboru allow_url_fopen = On - povolení zacházení s URL odkazy jako se soubory from=“[email protected]“ - definuje anonymní přihlašovací heslo k ftp serveru ;extension=php_gd.dll extension=php_gd2.dll - určuje modul, který se bude načítat při každém spouštění PHP
P 13
Příloha 2 - Konfigurační direktivy PHP [modules] - možnosti konfigurace jednotlivých nahraných modulů [mail function] SMTP = 192.168.1.129 - nastavení SMTP serveru pro MS Windows sendmail_from = ;[email protected] - nastavení odesilatele (Win) sendmail_path = - nastavení odesilatele (Unix) [MySQL] mysql.allow_persistent = On - povolení trvalých spojení s MySQL mysql.max_persistent = -1 - počet trvalých spojení - -1 - bez limitu mysql.max_links = -1 - trvalých a dočasných spojení - -1 – bez limitu mysql.default_port = mysql.default_socket = - nastavení portu a socket – pokud není nastaven používá se implicitní mysql.default_host = mysql.default_user = mysql.default_password = - nastavení implicitního cílového serveru, uživatele a heslo pro přístup MySQL
P 14