[APACHE DOCUMENTATION]

Główne dyrektywy Apache'a

Poniżej przedstawione dyrektywy służą do ustawiania głównych właściwości Apache'a i są one zawsze takie same.

AccessConfig directive

Składnia: AccessConfig nazwa_pliku
Domyślnie: AccessConfig conf/access.conf
Kontekst: server config, virtual host
Status: core

Serwer czyta ten plik aby uzyskać więcej wskazówek co do ustawień ale po przeczytaniu pliku ResourceConfig . Nazwa_pliku jest taka jak w ustawieniu ServerRoot. Opcje tą możemy wyłączyć używając:

AccessConfig /dev/null
Historycznie, ten plik zawierał się w sekcji <Directory>; faktycznie może on zwierać teraz dowolną dyrektywę dozwoloną w server config (w pliku konfiguracyjnym serwera).


AccessFileName directive

Składnia AccessFileName nazwa_pliku
Domyślnie: AccessFileName .htaccess
Kontekst: server config, virtual host
Status: core

Kiedy serwer przesyła dokument dla klienta szuka pliku z określonymi prawami dostępu z nazwą dokumentu w każdym katalogu podanym w scieżce dostępu do tego dokumentu, jeżeli pliki z prawami dostępu są w danym katalogu. Na przykład:

AccessFileName .acl
przed odesłaniem dokumentu /usr/local/web/index.html, do klienta serwer przeczyta /.acl, /usr/.acl, /usr/local/.acl i /usr/local/web/.acl aby sprawdzić co ma dalej zrobić z tym dokumentem, chyba, że funkcja ta będzie wyłączona poleceniem
<Directory />
AllowOverride None
</Directory>


AddModule directive

Składnia AddModule moduł moduł ...
Kontekst: server config
Status: core
Zgodność: AddModule jest dostępny tylko w wersji Apache'a 1.2 i późniejszych

Server może posiadać skompilowane moduły, które nie są aktywne. Ta opcja może być użyta do załączenia tych modułów. Serwer rozprowadzany jest z listą załadowanych aktywnych modułów. Lista ta może być wyczyszczona poprzez opcję ClearModuleList .


AllowOverride directive

Składnia AllowOverride override override ...
Domyślnie: AllowOverride All
Kontekst: directory
Status: core

Kiedy serwer odnajdzie pliki .htaccess (określone w AccessFileName) musi wiedzieć, które dyrektywy zadeklarowane w tym pliku mogą unieważnić wcześniej podane informacje o dostępie.

Override może być ustawiony jako None, w typ przypadku serwer nie będzie czytał pliku, All w typ przypadku serwer zezwoli na wszystkie dyrektywy (opcje) lub jedną albo ktorąś z niżej podanych:

AuthConfig
Zezwala na używanie dyrektyw autoryzacji. (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, itp.).
FileInfo
Zezwala na używanie dyrektyw kontrolujących typy dokumentów (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, itp.).
Indexes
Zezwala na używanie dyrektyw kontrolujących katalogowanie katalogu (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, itp.).
Limit
Zezwla na używanie dyrektyw kontrolujących dostęp do hosta (allow, deny and order).
Options
Zezwala na używanie dyrektyw kontrolujących określone cechy katalogu (Options i XBitHack).


AuthName directive

Składnia AuthName auth-domain
Kontekst: directory, .htaccess
Override: AuthConfig
Status: core

Dyrektywa ta ustawia nazwę dziedziny autoryzacji dla katalogu. Dziedzina przesyłana jest do klienta i stąd użytkownik wie na jaki login i hasło musi się zalogować. Musi być to skoordynowane z ustawieniami AuthType, dyrektyw require i dyrektywami takimi jak AuthUserFile i AuthGroupFile ażeby działało.


AuthType directive

Składnia AuthType type
Kontekst: directory, .htaccess
Unieważnia: AuthConfig
Status: core

Dyrektywa ta wybiera typ autoryzacji użytkownika, który ma mieć dostęp do katalogu. Tylko Basic jest aktualnie zaimplementowany. Musi być to skoordynowane z ustawieniami AuthType, dyrektyw require i dyrektywami takimi jak AuthUserFile i AuthGroupFile ażeby działało.


BindAddress directive

Składnia BindAddress saddr
Domyślnie: BindAddress *
Kontekst: server config
Status: core

A Unix(R) http serwer może nasłuchiwać żądań połączeń dla każdego adresu IP danej maszyny lub tylko dla jednego adresu IP Saddr może być

  • *
  • adresem IP
  • domeną internetową
  • Jeżeli przyjmuje wartość * , wtedy serwer nasłuchuje żądań połączeń dla wszystkich adresów IP, w innym przypadku nasłuchuje tylko dla określonego IP.

    Ta opcja może być użyta jako alternatywna metoda do obsługi virtual hosts (wirtualnych hostów) zamiast sekcji <VirtualHost>.

    Zobacz również: kwestie DNS
    Zobacz również: Ustawianie adresów i portów z których korzysta Apache


    ClearModuleList directive

    Składnia ClearModuleList
    Kontekst: server config
    Status: core
    Zgodność: ClearModuleList jest dostępna tylko w wersji Apache'a 1.2 i późniejszych

    Serwer rozprowadzany jest z listą załadowanych aktywnych modułów. Dyrektywa ta czyści tą listę. Oczywiście zakładając, że następnie lista będzie odnowiona poprzez dyrektywę AddModule.


    DefaultType directive

    Składnia DefaultType mime-type
    Domyślnie: DefaultType text/html
    Kontekst: server config, virtual host, directory, .htaccess
    Override: FileInfo
    Status: core

    Czasami bywa tak, że serwer pytany jest o typ przesyłanego dokumentu a dokument ten nie może być określony poprzez typy MIME.

    Serwer musi poinformować klienta o typie dokumentu i jeżeli typ jest nieznany sewer używa domyślnego typu DefaultType. Na przykład:

    DefaultType image/gif
    mógłby być stosowny dla katalogu, który zawiera wiele gif'ów ale w nazwach nie mają rozszerzenia .gif.


    <Directory> directive

    Składnia <Directory directory> ... </Directory>
    Kontekst: server config, virtual host
    Status: Core.

    <Directory> i </Directory> jest używane do zawaracia w jednej grupie dyrektyw, które będa miały zastosowanie do katalogów i podkatalogów danego katalogu. Jakakolwiek dyrektywa która jest zawarta w kontekście może być użyta. Directory spełnia również rolę ścieżki dostępu do katalogu albo jest ciągiem wild-card. W ciągu wild-card, '?' oznacza pojedyńczy znak a '*' oznacza dowolny ciąg znaków. Na przykład:

       <Directory /usr/local/httpd/htdocs>
       Options Indexes FollowSymLinks
       </Directory>
    

    Apache 1.2 i nowsze: Rozszerzone wyrażenia mogą być użyte z dodatkowym znakiem ~. Na przykład:

       <Directory ~ "^/www/.*/[0-9]{3}">
    
    oznacza katalogi w /www/ zawierające trzy cyfry.

    Jeżeli wszelkie sekcje katalogów pasują do katalogu zawierającego dokument to dyrektywa wskazuje na najkrótszą pasującą nazwę katalogu i wczytuje dyrektywy z plików .htaccess. Na przykład:

    <Directory />
    AllowOverride None
    </Directory>

    <Directory /home/*>
    AllowOverride FileInfo
    </Directory>
    kroki dostępu do dokumentu /home/web/dir/doc.html są następujące:
  • Zastosowanie dyrektywy AllowOverride None (wyłączając pliki .htaccess).
  • Zastosowanie dyrektywy AllowOverride FileInfo (dla katalogu /home/web).
  • Zastosowanie jakiejkolwiek dyrektywy FileInfo w /home/web/.htaccess
  • Uwaga domyślnie w Apache'u ustawiony jest dostęp do <Directory /> Allow from All (dla wszystkich). To oznacza, że Apache będzie przesyłal dowolny plik podany w URL'u. Zalecane jest, że zmienisz to ustawieinie poprzez

     <Directory />
         Order Deny,Allow
         Deny from All
     </Directory>
    

    i unieważnisz to dla katalogu który chcesz usdostępnić. Zobacz stronę Security Tips po więcej szczegółów.

    Sekcja katalogów standardowo występuje w pliku access.conf, ale może występować w dowolnym z plików konfiguracyjnych. Dyrektywa <Directory> nie może być umieszczona i nie może znajdować się w sekcji <Limit>.


    DocumentRoot directive

    Składnia DocumentRoot nazwa_katalogu
    Domyślnie: DocumentRoot /usr/local/etc/httpd/htdocs
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa ta ustawia katalog z którego httpd będzie pobierał (serwował) pliki. Jeżeli ustawienie nie pasuje do ustawionego np. Aliasu, serwer dołączy ścieżkę z URL'a do podanego dokumentu aby mógł mieć dostęp do dokumentu. Przykład:

    DocumentRoot /usr/web
    wówczas dostęp do http://www.my.host.com/index.html kierowany jest do /usr/web/index.html.

    Są błędy w mod_dir które stwarzają problemy wówczas gdy DocumentRoot ma wstawiony slash na końcu ("DocumetRoot /usr/web/") także lepiej tego unikać.


    ErrorDocument directive

    Składnia ErrorDocument error-code document
    Context server config, virtual host, directory, .htaccess
    Status: core
    Uniważnia: FileInfo
    Zgodność: Konteks katalogu i .htaccess dostępne są tylko w Apache'u 1.1 i późniejszych.

    W przypadku wystąpienia błędu, Apache może być skonfigurowany tak aby zrobił coś z niżej wymienionych punktów,

    1. pokazać prostą informację o błędzie
    2. pokazać przerobioną wiadomość
    3. przeadresować do lokalnego URL aby wstrzymał problem/błąd
    4. przeadreswoać do zewnętrznego URL aby wstrzymał problem/błąd

    Pierwsza opcja jest ustawiona domyslnie, podczas gdy opcje 2-4 sa skonfigurowane przy użyciu dyrektywy ErrorDocument.

    Messages w tym kontekście zaczynają się zwykłym pojedyńczym cudzysłowem ("), jeżeli nie wchodzą w treść informacji. Apache czasami oferuje dodatkowe informacje odnośnie danego problemu/błędu.

    URL'e mogą zaczynać sie od slash'a (/) dla lokalnych URL'i, lub moga być podane w pełnej formie. Przykład:

    ErrorDocument 500 http://foo.example.com/cgi-bin/tester
    ErrorDocument 404 /cgi-bin/bad_urls.pl
    ErrorDocument 401 /subscription_info.html
    ErrorDocument 403 "Sorry can't allow you access today

    Kiedy wyszczególnisz ErrorDocument który prowadzi do odległego URL'a (będziesz podawał adresy z "http" na początku) Apache będzie wysyłał przekierowanie do klienta z informacją gdzie ma znaleźć dokument, nawet wtedy gdy dokument będzie znajdował się na tym samym serwerze... To zawiera kilka implikacji, najważniejsza zaistnieje jeżeli użyjesz dyrektywy "ErrorDocument 401" powinna ona odsyłac do istniejącego lokalnego dokumentu.Rezultaty pochodzą w gruncie rzeczy z podstawowych własności protokołu HTTP.

    Zobacz również: documentation of customizable responses.


    ErrorLog directive

    Składnia ErrorLog nazwa_pliku
    Domyślnie: ErrorLog logs/error_log
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa error log ustawia nazwę pliku gdzie serwer będzie przechowywał informacje o błędach, o ile będą. Jeżeli nazwa pliku nie będzie poprzedzona slash'em (/) to automatycznie będzie to odpowiadało temu, że plik ten znajduje się w miejscu określonym przez dyrektywę ServerRoot. Na przykład:

    ErrorLog /dev/null
    Wyłącza zapisywanie błędów w logu.

    ŚRODKI BEZPIECZEŃSTWA: Zajrzyj do security tips po więcej szczegółów na temat dlaczego Twój serwer jest narażony jeżeli prawa zapisu do katalogu gdzie przechowywane są logi mają inni użytkownicy aniżeli "użytkownik" który uruchomił serwer.


    <Files>

    Składnia <Files nazwa_pliku> ... </Files>
    Kontekst: server config, virtual host, htaccess
    Status: core
    Zgodność: dostępne tylko w wersji Apache 1.2 i wyżej.

    Dyrektywa <Files> pozwala na kontrolę dostepu poprzez nazwę pliku. Jest ona porównywalna z dyrektywą <Directory> i <Location>. Dyrektywy które mają być zastosowane z dyrektywą <Files> powinny być zawarte pomiędzy znacznikami <Files>

    nazwa_pliku powinna zawierać nazwę pliku, lub łańcuch wild-card, gdzie `?' oznacza pojedyńczy znak, a `*' oznacza dowolny ciąg znaków. Rozszerzone regularne wyrażenia mogą być również użyte z dodatkowym znakiem ~. Na przykład:

       <Files ~ "\.(gif|jpe?g|png)$">
    
    powinno odpowiadać większości używanych formatach graficznych w Internecie.

    Uwaga w odróżnieniu od <Directory> i <Location> , sekcje <Files> mogą być użyte w pliku .htacces. To zezwala użytkownikom kontrolowanie dostępu do ich własnych plików. Kiedy dyrektywa Files użyta jest w pliku .htaccess i nazwa_pliku nie rozpoczyna się od znaku /, do katalogu który jest tam umieszczony zostanie automatycznie dodany przedrostek.


    Group directive

    Składnia Group unix-group
    Domyślnie: Group #-1
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa Group ustawia grupę na której rządania będzie odpowiadał serwer. Aby korzystać z tej dyrektywy, serwer musi być uruchomiony w trybie stand-alone z prawami użytkownika root (administratora). Unix-group jest jedną z:

    nazwa grupy
    Odesłanie wziąwższy pod uwagę nazwę grupy.
    # lepiej używać numeru grupy.
    Odesłanie do grupy poprzez numer.
    Zalecane jest, że ustawisz nową grupę wykorzystywaną tylko do uruchamiania serwera. Niektórzy administratorzy używają użytkownika nobody, ale nie zawsze jest to możliwe lub wskazane.

    Uwaga: jeżeli uruchomisz serwer jako użytkownik non-root (nie-administrator) nie będzie można zmienić na odpowiedna do tego grupę i działanie serwera będzie kontynuowane w grupie użytkownika który uruchomił serwer.

    Uwaga specjalna: Użycie tej dyrektywy w <VirtualHost> wymaga poprawnego skonfigurowania suEXEC wrapper. Jeżeli jest użyta wewnątrz <VirtualHost> w ten sposób, tylko grupa która ma prawa na uruchamianie skryptów CGI jest afektowana. Żądania połączenia ale nie żądania uruchomienia skryptów CGI są nadal wykonywane w grupie ustawionej dyrektywą Group.

    HostNameLookups directive

    Składnia HostNameLookups boolean
    Domyślnie: HostNameLookups on
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa ta załącza sprawdzanie DNS'u i dzięki temu nazwy host'ów mogą być logowane. Mając ustawioną tą dyrektywę na on załącza ona również wykorzystywanie nazw w <Limit> kontrolując dostęp.

    Obciążone serwery powinny ustawić tą dyrektywę na off, ponieważ sprawdzanie DNS'u zabiera dużo czasu. Logresolve znajdujący się w katalogu /support może być użyty do sprawdzenia IP zalogowanych nazw hostów offline.


    IdentityCheck directive

    Składnia IdentityCheck boolean
    Domyślnie: IdentityCheck off
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa załącza (RFC1413) rozpoczęcie zapisu logowania połączeń użytkowników gdy po stronie użytkownika uruchomiony jest ident (identyfikacja) lub coś podobnego. Informacje te przechowywane są w pliku log.

    Informacje te powinny być traktowane tylko informacyjnie.

    Dyrektywa ta może powodować częste opóźnienia podczas dostępu do Twojego serwera gdy każda prośba połączenia będzie sprawdzana i logowana. Kiedy jest ustawiony skomplikowany firewall żądania połączenia mogą sie nie powieść dodaj wtedy 30 sekund opóżnienia. Dyrektywa ta nie jest użyteczna na publicznych serwerach dostępnych w Internecie.


    <IfModule>

    Składnia <IfModule [!]module-name> ... </IfModule>
    Domyślnie: None
    Kontekst: all
    Status: Core
    Zgodność: ScriptLog dostępny tylko w wersji 1.2 i nowszych.

    Sekcja <IfModule test>...</IfModule> jest używana do zaznaczenia dyrektyw warunkowych. Dyrektywy umieszczone wewnątrz IfModule wykonywane są tylko kiedy test jest prawdziwy. Jeżeli test jest fałszywy, wszystko pomiędzy startem i końcem znaczników jest ignorowane.

    test w sekcji <IfModule> może przyjąć jedną z dwóch postaci:

    Pierwszy z formatów oznacza, że dyrektywy umieszczone pomiędzy znacznikami startu i końca wykonywane są tylko wtedy gdy moduł o nazwie module name jest skompilowany w Apache'u. Drugi natomiast działa odwrotnie i dyrektywy są wykonywane gdy moduł nie jest skompilowany w Apache'u.

    Argument module name jest nazwą modułu, która została nadana plikowi w czasie kompilacji, w którym umieszczony jest moduł. Na przykład: mod_rewrite.c.

    <IfModule> może być użyte do przetestowania modułów.


    KeepAlive

    Składnia (Apache 1.1) KeepAlive max-requests
    Domyślnie: (Apache 1.1) KeepAlive 5
    Składnia (Apache 1.2) KeepAlive on/off
    Domyślnie: (Apache 1.2) KeepAlive On
    Kontekst: server config
    Status: Core
    Zgodność: KeepAlive dostępny tylko w Apache'u 1.1 i nowszym.

    Dyrektywa ta załącza wspomaganie Keep-Alive .

    Apache 1.1: Ustaw max-requests na maksymalną liczbę odpowiedzi na prośby połączeń, które Apache ma przyjmować. Limit jest nałożony aby zapobiec okupowaniu przez klientów Twojego serwera. Aby wyłączyć dostęp ustaw tą dyrektywę na 0.

    Apache 1.2 i nowsze: Ustaw na "On" aby załączyć ciągłe połączenia, "Off" aby wyłączyć. Zobacz również dyrektywę MaxKeepAliveRequests.

    KeepAliveTimeout

    Składnia KeepAliveTimeout seconds
    Domyślnie: KeepAliveTimeout 15
    Kontekst: server config
    Status: Core
    Zgodność: KeepAliveTimeout dostępne tylko w wersji 1.1 i późniejszych.

    Liczba sekund w których Apache czeka na kolejne połączenia przed zerwaniem połączenia. Wartośc timeout określa dyrektywa Timeout.


    Listen

    Składnia Listen [IP address:]port number
    Kontekst: server config
    Status: core
    Zgodność: Listen dostępne tylko w wersji 1.1 i późniejszych.

    Dyrektywa Listen instruuje Apache'a do nasłuchiwania więcej niż tylko jednego adresu IP lub portu; domyślnie odpowiada na prośby połączeń na wszystkich interfejsach IP, ale tylko na jednym porcie ustawionym przez dyrektywę Port

    .

    <Limit> directive

    Składnia <Limit method method ... > ... </Limit>
    Kontekst: any
    Status: core

    <Limit> i </Limit> używane są aby zawrzeć grupę dyrektyw kontrolujących dostęp, które będą zastosowane tylko do określonej metody dostępu, gdzie method jest ważną metodą HTTP. Jakakolwiek dyrektywa poza inną niż <Limit> lub <Directory> może być wykorzystana; większość będzie miała znaczenia na <Limit>. Na przykład:

    <Limit GET POST>
    require valid-user
    </Limit>
    Jeżeli dyrektywa kontroli dostępu pojawi sie poza dyrektywą <Limit> to zastosowane zostaną wszystkie metody kontroli dostępu.


    <Location>

    Składnia <Location URL> ... </Location>
    Kontekst: server config, virtual host
    Status: core
    Zgodność: Location dostępne tylko w wersji 1.1 i nowszych.

    Dyrektywa <Location> uwzględnia kontrolę na poziomie adresu URL. Jest podobna do dyrektywy <Directory>, i powinna być używana razem z dyrektywą </Location> Dyrektywy które są stosowane z adresem URL powinny być umieszczone wewnątrz. Sekcje <Location> są rozpatrywane według kolejności występowania w pliku konfiguracyjnym, ale po uwzględnieniu sekcji <Directory> i po przeczytaniu pliku .htaccess.

    Apache 1.2 i wyższe: Rozszerzone regularne wyrażenia również mogą być używane poprzez dodanie znaku ~. Na przykład:

       <Location ~ "/(extra|special)/data">
    

    Pasuje do URL'i które zawierają łańcuch "/extra/data" lub "/special/data".

    Location jest funkcjonalne w połączeniu z dyrektywą SetHandler. Na przykład, aby załączyć stan próśb połączeń, ale przeznaczony tylko dla przeglądarek z foo.com, możesz użyć:

        <Location /status>
        SetHandler server-status
        order deny,allow
        deny from all
        allow from .foo.com
        </Location>
    

    LockFile

    Składnia LockFile filename
    Domyślnie: LockFile logs/accept.lock
    Kontekst: server config
    Status: core

    Dyrektywa LockFile ustawia scieżkę dostępu do pliku blokującego używanego gdy Apache skompilowany jest jednym z USE_FCNTL_SERIALIZED_ACCEPT lub USE_FLOCK_SERIALIZED_ACCEPT. Dyrektywa ta normalnie powinna pozostać jako domyślna wartość. Główny powód zmian jest jeżeli katalog logs zamontnowany jest jako NFS, plik blokujący powinien jednak być trzymany lokalnie o ile jest to możliwe. PID głównego procesu serwera jest automatycznie dodawany do pliku.


    MaxClients

    Składnia MaxClients number
    Domyślnie: MaxClients 256
    Kontekst: server config
    Status: core

    Dyrektywa MaxClients ustawia limit równoległych połączeń, które mogą być zrealizowane; w zależności od tej dyrektywy uruchomionych zostanie nie więcej niż MaxClient liczba procesów child.


    MaxKeepAliveRequests

    Składnia MaxKeepAliveRequests number
    Domyślnie: MaxKeepAliveRequests 100
    Kontekst: server config
    Status: core
    Zgodność: Dostępne tylko w wersji 1.2 i nowszych.

    Dyrektywa MaxKeepAliveReauests ustawia limit zezwoleń połączeń gdy KeepAlive jest załączona. Jeżeli jest ustawiona na "0", zezwolona liczba połączeń będzie nielimitowana. Zalecamy ustawić wartość na jak największą pod względem wydajności serwera.

    MaxRequestsPerChild directive

    Składnia MaxRequestsPerChild number
    Domyślnie: MaxRequestsPerChild 0
    Kontekst: server config
    Status: core

    Dyrektywa MaxRequestsPerChild ustawia limit połączeń indywidualnie dla każdego procesu child. Po liczbie połączeń określonych przez MaxRequestsPerChild, proces child zostaje zatrzymany. Jeżeli MaxRequestsPerChild jest równy 0, to proces nigdy nie przestanie działać.

    Ustawienie MaxRequestsPerChild na wartość nie-zerową daje dwie korzyści:


    MaxSpareServers directive

    Składnia MaxSpareServers number
    Domyślnie: MaxSpareServers 10
    Kontekst: server config
    Status: core

    Dyrektywa MaxSpareServers ustawia maksymalną liczbę bezczynnych procesów child. Bezczynny proces child jest jendnym z procesów nie utrzymujących połączenia. Jeżeli jest więcej bezczynnych procesów niż MaxSpareServers, wtedy nadrzędny proces będzie wyłączał niepotrzebne procesy.

    Dokładne ustawienie tego parametru może być potrzebne na bardzo pbleganych site'ach. Ustawianie tego parametru na jak największą wartość jest w większości przypadków złym pomysłem.

    Zobacz również MinSpareServers and StartServers.


    MinSpareServers directive

    Składnia MinSpareServers number
    Domyślnie: MinSpareServers 5
    Kontekst: server config
    Status: core

    Dyrektywa MinSpareServers ustawia minimalną liczbę bezczynnych procesów child. Bezczynny proces child jest jendnym z procesów nie utrzymujących połączenia. Jeżeli jest mniej bezczynnych procesów niż MinSpareServers, wtedy nadrzędny proces utowrzy nowe procesy child, z maksymalną prędkością 1 proces/sekundę.

    Dokładne ustawienie tego parametru może być potrzebne na bardzo pbleganych site'ach. Ustawianie tego parametru na jak największą wartość jest w większości przypadków złym pomysłem.

    Zobacz również MaxSpareServers and StartServers.


    Options directive

    Składnia Options [+|-]option [+|-]option ...
    Kontekst: server config, virtual host, directory, .htaccess
    Override: Options
    Status: core

    Dyrektywa Options kontroluje, które z właściwości serwera są dostępne w konkretnym katalogu.

    option może być ustawione na None, w tym przypadku żadna z dodatkowych właściwości serwera nie jest załączona, albo jedna lub więcej z poniższych:

    All
    Wszystkie opcje z wyjątkiem MultiViews.
    ExecCGI
    Zezwolone jest uruchamianie skryptów CGI.
    FollowSymLinks
    Server będzie zwracał uwagę na symbliczne linki w katalogu. Uwaga: mimo działania tej opcji, nie zostanie zmieniona ścieżka dostępu ustawiona w sekcji <Directory>.
    Includes
    Includes są zezwolone.
    IncludesNOEXEC
    Includes są zezwolone, ale komendy #wykonawcze i #zawierające skrypty CGI są wyłączone.
    Indexes
    Jeżeli adres URL odwołuje się do katalogu w którym nie ma DirectoryIndex (np. index.html) to serwer zwróci zformatowany listing katalogu.
    MultiViews
    Ustalona zawartość MultiViews jest dozwolona.
    SymLinksIfOwnerMatch
    Serwer będzie korzystał z linków symblicznych które wskazują na plik lub katalog tego samego użytkownika którego jest link.

    PidFile directive

    Składnia PidFile filename
    Domyślnie: PidFile logs/httpd.pid
    Kontekst: server config
    Status: core

    Dyrektywa PidFile ustawia plik w którym server zapisuje numer procesu id demona. Jeżeli nazwa nie rozpoczyna się od slach'a (/) to zostanie przybrana wartość względem ServerRoot. Plik PidFile wykorzystywany jest tylko w trybie pracy standalone.


    Port directive

    Składnia Port numer
    Domyślnie: Port 80
    Kontekst: server config
    Status: core

    Numer jest liczbą z przedziału od 0 do 65535; niektóre numery portów (szczególnie poniżej 1024) są zarezerwowane dla określonych protokołów. Zobacz /etc/services, w pliku tym są już definowane niektóre porty; standardowy port protokołu http to 80.

    Dyrektywa Port ma dwa postępowania, pierwsze które jest konieczne dla zachowania kompatybilności z NCSA backwards (które powoduje zagmatwanie w kontekście Apache'a).

    Jeżeli nie ma żadnych zdarzeń ustawienie Portu wpływa na jakie porty wirtualnych hostów serwer ma reagować, dyrektywa VirtualHost sama w sobie jest wykorzystywana do tego.

    Podstawowe zachowanie dyrektywy Port powinno być podobne do dyrektywy ServerName. Dyrektywa ServerName i Port razem określają co powinieneś wziąść pod uwagę przy kanonicznym adresie serwera.

    Port 80 jest jednym ze specjalnycj portów UNIX'a. Wszystkie numery portów poniżej 1024 są zarezerwowane dla systemu, zwykły użytkownik (nie-root) nie może ich wykorzystywać; zamiast tego może używać wyższych numerów portów. Aby użyc portu 80, musisz wystartować serwer z konta root'a. Po przypisaniu portu ale przed zaakceptowaniem połączeń, Apache zmieni prawa na najmniej uprzywilejowanego użytkownika ustawionego przez dyrektywę User.

    Jeżeli nie możesz używać portu 80, wybierz inny wolny port. Zwykli użytkownicy muszą wybrać port powyżej 1023, taki jak 8000.

    BEZPIECZEŃSTWO: jeżeli uruchamiasz serwer jako root, upewnij się że nie ustawiłeś dyrektywy User jako root. Jeżeli uruchomisz serwer jako root, Twój serwer będzie otwarty na ataki hackerów.


    require directive

    Składnia require entity-name entity entity...
    Kontekst: directory, .htaccess
    Override: AuthConfig
    Status: core

    Dyrektywa ta wybiera którzy "zaufani" użytkownicy mają dostęp do katalogu. Zezwolone składnie to:

    Jeżeli require pojawi się w dyrektywie <Limit> ograniczony jest wtedy dostęp określony metodą, w przeciwnym wypadku ograniczony jest dostęp wszystkimi metodami. Przykład:

    AuthType Basic
    AuthName somedomain
    AuthUserFile /web/users
    AuthGroupFile /web/groups
    <Limit GET POST>
    require group admin
    </Limit>

    ResourceConfig directive

    Składnia ResourceConfig nazwa_pliku
    Domyślnie: ResourceConfig conf/srm.conf
    Kontekst: server config, virtual host
    Status: core

    Serwer będzie czytał ten plik po więcej dyrektyw po przeczytaniu pliku httpd.conf. Nazwa_pliku jest relatywana w stosunku do dyrektywy ServerRoot. Ta opcja może być wyłączona poprzez użycie:

    ResourceConfig /dev/null
    Historycznie, ten plik zawiera więkoszość dyrektyw poza dyrektywami konfiguracyjnymi i sekcji <Directory>; faktycznie może zawierać dowolną dyrektywę serwera dopuszczoną w konfiguracji serwera.

    Zobacz również AccessConfig.


    RLimitCPU directive

    Składnia RLimitCPU # or 'max' [# or 'max']
    Domyślnie: Unset uses operating system defaults
    Kontekst: server config, virtual host
    Status: core
    Zgodność: RLimitCPU dostępne tylko w Apache'u 1.2 i nowszych

    Pobiera 1 lub 2 parametry. Pierwszy parametr ustawia "łagodny" limit zasobów dla wszystkich procesów a drugi parametr ustawia maksymalny limit zasobów. Obojętnie który parametr może być liczbą, lub max sygnalizującym serwerowi, że limit powinien być ustawiony na maksymalny dozwolony przez konfigurację systemu operacyjnego. Dyrektywa ta wymaga uruchamiania serwera jako root.

    Limit zasobów CPU wyrażany jest w ilości sekund przypadających na proces.

    Zobacz również RLimitMEM or RLimitNPROC.


    RLimitMEM directive

    Składnia RLimitMEM # or 'max' [# or 'max']
    Domyślnie: Unset uses operating system defaults
    Kontekst: server config, virtual host
    Status: core
    Zgodność: RLimitMEM dostępne tylko w Apache'u 1.2 i nowszych

    Pobiera 1 lub 2 parametry. Pierwszy parametr ustawia "łagodny" limit zasobów dla wszystkich procesów a drugi parametr ustawia maksymalny limit zasobów. Obojętnie który parametr może być liczbą, lub max sygnalizującym serwerowi, że limit powinien być ustawiony na maksymalny dozwolony przez konfigurację systemu operacyjnego. Dyrektywa ta wymaga uruchamiania serwera jako root.

    Limity zasobów pamięci wyrażane są w ilości bajtów przypadających na proces.

    Zobacz również RLimitCPU or RLimitNPROC.


    RLimitNPROC directive

    Składnia RLimitNPROC # or 'max' [# or 'max']
    Domyślnie: Unset uses operating system defaults
    Kontekst: server config, virtual host
    Status: core
    Zgodność: RLimitNPROC dostępne tylko w Apache'u 1.2 i nowszych

    Pobiera 1 lub 2 parametry. Pierwszy parametr ustawia "łagodny" limit zasobów dla wszystkich procesów a drugi parametr ustawia maksymalny limit zasobów. Obojętnie który parametr może być liczbą, lub max sygnalizującym serwerowi, że limit powinien być ustawiony na maksymalny dozwolony przez konfigurację systemu operacyjnego. Dyrektywa ta wymaga uruchamiania serwera jako root.

    Limit procesów kontroluję liczbę procesów przypadających na użytkownika.

    See also RLimitMEM or RLimitCPU.


    SendBufferSize directive

    Składnia SendBufferSize bytes
    Kontekst: server config
    Status: core

    Serwer powinien ustawić rozmiar bufora TCP do określonej liczby bajtów.


    ServerAdmin directive

    Składnia ServerAdmin email-address
    Kontekst: server config, virtual host
    Status: core

    Dyrektya ServerAdmin ustawia adres poczty elektronicznej pod który serwer będzie wysyłał wiadmości o błedach zwracanych klientom.

    Można wstawić dedykowany adres, na przykład:

    ServerAdmin www-admin@foo.bar.com


    ServerAlias directive

    Składnia ServerAlias host1 host2 ...
    Kontekst: virtual host
    Status: core
    Zgodność: ServerAlias dostępne tylko w Apache'u 1.2 i nowszych.

    Dyrektywa ServerAlias ustawia alternatywne nazwy dla hosta, potrzebne przy korzystaniu z Host-header based virtual hosts.


    ServerName directive

    Składnia ServerName fully-qualified domain name
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa ServerName ustawia nazwę hosta danego serwera; wykorzystywane jest to tylko kiedy tworzone jest przekierowanie URL'i. Jeżeli nazwa nie jest określona, wtedy serwer będzie próbował znaleść ją z własnego adresu IP; aczkolwiek może to źle pracować, lub może nie zwracać preferowanej nazwy hosta. Na przykład:

    ServerName www.wibble.com
    powinno być użyte jeżeli nazwa kanoniczna aktualnego komputera była monster.wibble.com.


    ServerRoot directive

    Składnia ServerRoot directory-filename
    Domyślnie: ServerRoot /usr/local/etc/httpd
    Kontekst: server config
    Status: core

    Dyrektywa ServerRoot ustawia katalog w którym "żyje" serwer. Domyślnie powinien zawierać podkatalogi conf/ i logs/. Względnie ścieżki do innych plików konfiguracyjnych.
    Zobacz również the -d option to httpd.


    ServerType directive

    Składnia ServerType type
    Domyślnie: ServerType standalone
    Kontekst: server config
    Status: core

    Dyrektywa ServerType określna w jaki sposób serwer jest uruchamiany przez system. Type jest jednym z

    inetd
    Serwer będzie uruchomiony poprzez systemowy proces inetd; komenda uruchamiające serwer jest dodana do /etc/intetd.conf
    standalone
    Serwer będzie uruchomiony jako proces demon; komenda uruchamiająca serwer dodana jest do systemowych skryptów startujących. (/etc/rc.local lub /etc/rc3.d/....)
    Inetd jest mniej wykorzystywaną metodą z powyższych dwóch. Dla każdego połączenia http, uruchamiana jest nowa kopia serwera; po zakończeniu połączenia, kopia jest zamykana. Płaci się przez to "wyższą cenę" dla każdego połączenia, ze względu na warunki bezpieczeństwa, niektórzy administatorzy preferują tą metodę.

    Standalone jest najbardzie popularną metodą ustawianą dla ServerType, jest ona bardziej wydajna. Serwer uruchamiany jest tylko raz, i obsługuje wszystkie późniejsze połączenia. Jeżeli zamierzasz uruchomić oblegany serwer, standalone jest prawdopodobnie jedynym rozwiązaniem.


    StartServers directive

    Składnia StartServers number
    Domyślnie: StartServers 5
    Kontekst: server config
    Status: core

    Dyrektywa StartServers ustawia liczbę procesów child tworzonych w czasie uruchamiania serwera. Liczba procesów jest dynamicznie kontrolowana w zależności od przeładowania serwera, z reguły nie ma powodów do zmiany tego parametru.

    Zobacz również MinSpareServers i MaxSpareServers.


    TimeOut directive

    Składnia TimeOut number
    Domyślnie: TimeOut 300
    Kontekst: server config
    Status: core

    Dyrektywa TimeOut obecnie definiuje ilość czasu w którym Apache będzie oczekiwał na trzy rzeczy:

    1. Całkowita ilość czasu jaka potrzebna jest do odebrania żądania GET.
    2. Całkowita ilość czasu pomiędzy potwierdzeniem pakietów TCP na żądania POST lub PUT.
    3. Całkowita ilość czasu pomiędzy ACKs (potwierdzeniami) transmisji pakietów TCP w odpowiedzi.


    User directive

    Składnia User unix-userid
    Domyślnie: User #-1
    Kontekst: server config, virtual host
    Status: core

    Dyrektywa User ustawia userid na jakie serwer będzie odpowiadał. Żeby korzystać z tej dyrektywy, standalone serwer musi być zainicjowany jako root. Unix-userid jest jednym z:

    A username
    Odpowiada użytkownikowi określonemu przez nazwę (imię).
    # lepiej używać numberu użytkownika.
    Odpowiada użytkownikowi określonemu przez jego numer.
    Użytkownik nie powinien posiadać żadnych uprawnień, które zezwalałyby na dostęp do plików nie przeznaczonych do ogladania przez resztę świara, i podobnie użytkownik nie powinien mieć możliwości wykonywnia programów które nie odpowiadają httpd. Zalecane jest ustawienie nowego użytkownika i grupy przeznaczonej tylko do uruchamiania serwera. Niektórzy administratorzy wykorzystują użytkownika nobody, ale nie zawsze jest to możliwe lub wskazane.


    <VirtualHost> directive

    Składnia <VirtualHost addr[:port] ...> ... </VirtualHost>
    Kontekst: server config
    Status: Core.
    Zgodność: Non-IP address-based Virtual Hosting dostępne tylko w wersji Apache'a 1.1 i nowszych.
    Zgodność: Multiple address support dostępne tylko w wersji Apache'a 1.2 i nowszych.

    <VirtualHost> i </VirtualHost> są wykorzystywane do zawarcia grupy dyrektyw które będą stosowane tylko do określonego wirtualnego hosta. Jakakolwiek dyrektywa może być użyta wewnątrz dyrektywy VirtualHost. Kiedy serwer otrzyma żądanie przesłania dokumentu konkretnego wirtualnego hosta, użyje wtedy dyrektyw konfigurujących zawartych w sekcji <VirtualHost> Addr może być

  • Adresem IP wirtualnego hosta.
  • Pełnoprawną domeną przyznaną dla adresu IP wirtualnego hosta.
  • Przykład:
    <VirtualHost 10.1.2.3>
    ServerAdmin webmaster@host.foo.com
    DocumentRoot /www/docs/host.foo.com
    ServerName host.foo.com
    ErrorLog logs/host.foo.com-error_log
    TransferLog logs/host.foo.com-access_log
    </VirtualHost>
    Każdy Wirtualny Host musi posiadać osobny adres IP lub różne nazwy serwerów, w drugim przypadku serwer musi być tak skonfigurowany aby akceptował pakiety IP dla różnych adresów. (Jeżeli komputer nie ma wielu interfejsów sieciowych, dobrym rozwiązaniem jest zastosowanie komendy ifconfig alias (o ile Twój system operacyjny zezwala na to)).

    Specjalna nazwa _default_ może być określona w którym przyapdku wirtualny host będzie pasował do dowolnego adresu IP który nie jest wyraźnie zdefiniowany, nasłuchiwany w innym wirtualnym hoście. W przypadku braku _default_ wirtualnego hosta, główny plik konfiguracyjny składa się ze wszystkich definicji poza sekcją VirtualHost.

    Możesz określić :port dla danego wirtualnego hosta. Jeżeli port nie jest określony przyjmuje domyślną wartość portu jaka jest ustawiona dla całego serwera. Możesz również określic :* które będą pasować do wszystkich portów na danym adresie. (Jest to zalecane kiedy używasz _default_.)


    Index Home