Poniższa treść jest przedrukiem z kilku witryn www znalezionych
w necie. Podobne dane można uzyskać w małych miniporadnikach
książkowych. Polecam ich zakup.
Inne strony związane z APACHE:
apache13.php
apache_vhosts.php
mysql.php
Plik /etc/httpd/conf/httpd.conf jest podstawowym plikiem
do konfigurowania demona httpd. Zawiera następujace dyrektywy:
ServerAdmin adres_e-mail - adres e-mail udostępniany
przez serwer WWW, pod którym użytkownicy mogą raportować wszystkie
błędy. Domyślnie jest to root@localhost. To pole należy ustawić na
poprawny adres osoby, która będzie odczytywała informacje o
błędach.
ServerName nazwa - nazwa umożliwia określenie nazwy hosta
obsługujacego stronę WWW (w postaci http://twój.adres). Nazwa
powinna być zarejestrowaną nazwą domeny. Oto przykładowy wpis:
ServerName pd132.wroclaw.sdi.tpnet.pl
ServerType typ - określa, jak serwer httpd ma być
uruchamiany w Linuksie. Parametr typ może mieć wartość inetd
(wówczas serwer jest uruchamiany poprzez serwer inetd) lub wartość
standalone (wówczas serwer jest uruchamiany w postaci osobnego
procesu.
Port numer - określa, na jakim porcie demon httpd
powinien prowadzić nasłuch (argument może być z przedziału od 0 do
65535). Domyślną wartością tego pola jest 80. Najlepiej używać
domyślnej wartości, ponieważ wszystkie przeglądarki zakładaja, że
serwery pracują na porcie 80. Jeżeli będziesz używać innej wartości
portu to adres strony powinien być zakończony numerem portu np.:
www.dreamnet.pl:1024
User nazwa [#identyfikator] - pozwala ustalić nazwę konta
(lub jego identyfikator) używanego przez demon httpd podczas
działania w trybie samodzielnego procesu. Można pozostawić wartość
domyślną. Aby użyć identyfikatora użytkownika, należy go podać w
postaci liczby poprzedzonej krzyżykiem (#).
Group nazwa [#identyfikator] - pozwala określić nazwę
grupy (lub jej identyfikator) używanej przez demon httpd podczas
działania w trybie samodzielnego procesu. Można pozostawić wartość
domyślną.
ServerRoot katalog - pozwala określić katalog, w którym
znajduje się serwer WWW. Domyślnie pliki konfiguracyjne oraz
rejestry są zapisywane w podkatalogach tego katalogu.
StartServer liczba - ustawia liczbę procesów potomnych
uruchamianych wraz z uruchomieniem serwera Apacha.
MaxSpareServers liczba - ustawia żadaną maksymalną liczbę
bezrobotnych procesów potomnych (proces jest uznany za bezrobotny,
jeżeli nie obsługuje żadań HTTP).
TimeOut liczba_sekund - ustawia liczbę sekund, jaką
serwer ma czekać na to, aż klient wyśle żadanie po nawiazaniu przez
niego połączenia). Domyślną wartością jest 300sekund czyli 5
minut.
ErrorLog nazwa_pliku - pozwala określić nazwę pliku w
którym będą rejestrowane błędy napotkane przez httpd.
PidFile nazwa_pliku - określa nazwę pliku w którym httpd
zapisuje numer swojego procesu. Domyślną wartością jest
/var/run/httpd.pid . Danych zapisanych w tym pliku można używać do
zabijania procesu httpd. Oto przykładowy sposób restartowania
httpd:
kill - HUP 'cat /var/run/httpd.pid'
TypesConfig nazwa_pliku - określa plik zawierający
przypisania rozszerzeń typów danych MINE ( Multipurpose Internet
Mail Extensions, standard definiujacy załączniki dokumentów).
Serwer przesyła te typy swoim klientom. Jeżeli nie użyje się
dyrektywy TypesConfig, httpd zakłada, że pole TypesConfig ma
wartość /etc/mine.types
Opis pliku
/etc/httpd/conf/commonhttp.conf . Plik ten w innych
wersjach Apacha jest rozdzielony na smr.conf oraz
access.conf . Poniższa treść jest przedrukiem z kilku witryn
www znalezionych w necie. Podobne dane można uzyskać w małych
miniporadnikach książkowych. Polecam ich zakup.
Plik konfiguracyjny zasobów, /etc/httpd/conf/smr.conf ,
określa położenie stron WWW oraz sposobów wyznaczania typów danych
różnych plików. początkowo możesz pozostawić domyślne wartości
dyrektyw. Oto opis ważniejszych dyrektyw tego pliku:
DocumentRoot katalog - określa katalog, w którym serwer
HTTP szuka stron WWW. W systemie Red Hat Linux domyślnym położeniem
jest /home/httpd/html , w Mandrake /var/www/html. Jeżeli umieścisz dokumenty w innym katalogu
zmień ustawienie tej dyrektywy.
UserDir katalog - określa podkatalog katalogu domowego
użytkownika, w którym serwer HTTP szuka stron WWW, jeżeli w adresie
po tyldzie występuje nazwa użytkownika (np.
www.dreamnet.pl/~jankowalski/). Domyślną wartością UserDir jest
public_html, oznacza to, że strona WWW użytkownika znajduje się w
podkatalogu public_html jego katalogu domowego czyli w /home/user/public_html. Jeżeli nie chcesz
pozwalać użytkownikom na posiadanie stron WWW, jako wartość UserDir
podaj disabled.
DirectoryIndex nazwa_pliku - określa domyślny plik
zwracany przez serwer w przypadku niepodania nazwy pliku w adresie
URL. Domyślną wartością tego pola jest index.php . Jeżeli httpd nie
znajdzie tego pliku, zwraca indeks (najczęściej po prostu jest to
listing plików katalogu).
AccessFileName nazwa_pliku - określa nazwę pliku, który
występuje w każdym katalogu z dokumentami i zawiera definicje praw
dostępu do zawartości katalogu. Domyślną wartością tego pola jest
.htaccess . Składnia tego pliku jest taka sama jak pliku
access.conf , omawianego w następnym podrozdziale.
AddType typ/podtyp roszerzenie - pozwala skojarzyć
rozszerzenie pliku z typem danych MINE (zapisanym w postaci
typ/podtyp, na przykład jako text/plain lub image/gif). Jeżeli
chcesz na przykład aby serwer traktował pliki z rozszerzeniem .sst
jako pliki tekstowe, określ następujace skojarzenie:
AddType text/plain lst
Domyślne typy MINE (wraz z przypisanymi im rozszerzeniami)
znajdują się w pliku /etc/mine.types
AddEncoding typ rozszerzenie - pozwala skojarzyć typ
kodowania z rozszerzeniem pliku. Aby serwer postrzegał pliki
kończace się na .gz jako zakodowane przez x-gzip (standardowa nazwa
dla kodowania GZIP), określ następujacą opcję:
AddEncoding x-gzip gz
DefaultType typ/podtyp - pozwala określić typ MINE,
jakiego użyje serwer, jeżeli nie wykryje typu pliku na podstawie
rozszerzenia. Jeżeli nie określi się parametru DefaultType, httpd
założy, że typem MIME jest text/html. W domyślnej wersji pliku
srm.conf jest to text/plain
Redirect żadany-plik rzeczywisty-URL - określa, że
wszystkie żadania obiektu żadany plik będą przekierowywane na adres
rzeczywisty- URL
Alias żadany-plik rzeczywisty-katalog - określa, że
serwer użyje ścieżki rzeczywisty-katalog do lokowania plików ze
ścieżki żadany-katalog. Aby żadania odnoszace się do katalogu
/icons były zastępowane żadaniami odnoszacymi się do katalogu
/home/httpd/icons, należy użyć następujacego przypisania:
Alias /icons/ home/httpd/icons/
ScriptAlias żadany-katalog rzeczywisty-katalog - określa
rzeczywista nazwę katalogu zawierajacego skrypty CGI. Domyślny plik
srm.conf zawiera następujacą dyrektywę:
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
FancyIndexing on [off] - włącza lub wyłącza wyświetlanie
listingów wzbogaconych o ikonki i rozmiary plików.
DefaultIcon plik_ikony - określa położenie, której serwer
powinien użyć dla plików nie mających ikon. Domyślnie stosowana
dyrektywa:
DefaultIcon /icon/unknown.gif
ReadmeName plik - pozwala określić nazwę pliku README
którego zawartość jest dodawana na końcu automatycznie generowanych
listingów katalogów.
HeaderName nazwa_pliku - pozwala określić nazwę pliku
nagłówkowego, którego zawartość będzie poprzedzała automatycznie
generowane listingi katalogów.
AddDescription "opis_pliku" nazwa pliku - pozwala
określić ciag opisujący plik nazwa_pliku w listingu katalogu.jako
nazwy pliku można używać również symbol wieloznacznych, np.
*.php
AddIcon plik_ikony rozszerzenie1 rozszerzenie2 - pozwala
przypisać plik ikony jednemu lub wielu rozszerzeniom.
AddIconByName plik_ikony typ_MINE - pozwala przypisać
ikonę grupie typów plików MINE określonej symbolem wielo
znaczeniowym (takim jak text/*)
AddIconByEncoding plik_ikony kodowanie1 kodowanie2 -
określa ikonę wyświetlaną dla jednego lub kilku typów kodowania np.
x-compress
IndexIgnore nazwa_pliku1 nazwa_pliku2 - instruuje serwer,
aby ten ignorował podane nazwy plików (najczęściej określa się je
wzorcem), przygotowujac listingi katalogów
IndexOptions opcja1 opcja2 - określa, jakie opcje
listingu katalogu ma przygotować serwer. Wśród opcji mogą się
znaleźć:
FancyIndexing włącza wyrafinowany listing katalogu
IconAreLinks powoduje, że ikony działają jak linki
ScanHTMLTitles pokazuje opisy plików
SuppressLastModified wyłącza wyświetlanie daty ostatniej
modyfikacji
SuppressDescription wyłącza wyświetlanie wszystkich
opisów
ErrorDocument typ_błędu nazwa_pliku - określa plik, który
serwer powinien wysłać w przypadku wystapienia błędu określonego
typu. Argument typ_błędu może być jednym z poniższych:
400 - Złe żądanie (BAD_REQUEST)
401 - Dostęp nieautoryzowany (AUTH_REQUIRED)
402 - Wymagana opłata
403 - Brak dostępu (FORBIDDEN)
404 - Nieznaleziony (NOT_FOUND)
405 - Metoda niedozwolona
406 - Nie do zaakceptowania
407 - Wymagane uwierzytelnienie proxy
408 - Upłynął limit czasu żądania
409 - Konflikt
410 - Nieobecny
411 - Potrzebna długość
412 - Niespełnione warunki wstępne
413 - Żądanie zbyt długie
414 - Żądanie URL zbyt długie
415 - Nieobsługiwany rodzaj medium
416 - Zakres rządania niezadowalający
417 - Oczekiwanie niespełnione
500 - Wewnętrzny błąd serwera (SERWER_ERROR)
501 - Niezaimplementowany (NOT_IMPLEMENTED)
502 - Zła brama
503 - Usługa niedostępna
504 - Upłynął limit czasu bramy
505 Nieobsługiwana wersja protokołu HTTP
Przyda się także wiedza o innych kodach:
100 - Kontynuacja
101 - Przełączanie protokołów
200 - OK
201 - Utworzony
202 - Zaakceptowany
203 - Informacja nieautorytatywna
204 - Brak zawartości
205 - Zerowanie zawartości
206 - Zawartość częściowa
300 - Wiele możliwości
301 - Przeniesiony na stałe
302 - Znaleziony
303 - Spróbuj inny
304 - Niezmodyfikowany
305 - Użyj proxy
307 - Przekierowanie tymczasowe
Plik konfiguracyjny/etc/httpd/conf/access.conf umożliwia
kontrolę dostępu do różnych katalogów systemu. Jest to globalny
plik konfiguracyjny dostępu. W każdym katalogu znajduje się
dodatkowo jeszcze inny plik konfiguracyjny (jego nazwę określa
dyrektywa AccessFileName pliku srm.conf; w przypadku nie określenia
własnej nazwy, domyślnie stosowana jest nazwa .htaccess).
Options op1 op2 ...- określa opcje dostępu dla sekcji
katalogu, w której ta dyrektywa się pojawia. Można używać
następujących opcji:
None - blokuje wszystkie funkcje kontrolne.
All - włącza wszystkie funkcje dotyczące danego
katalogu.
FollowSymLinks pozwala serwerowi przechodzić przez łącza
symboliczne.
SymLinksIfOwnerMatch powoduje, że serwer będzie
przechodził przez łącza symboliczne tylko wtedy, gdy połączony
katalog ma tego samego właściciela co katalog wyjściowy.
ExecCGI pozwala na wykonywanie skryptów CGI w tym samym
katalogu.
Includes włącza pliki ze strony serwera z tego
katalogu.
Indexes pozwala klientom żadać indeksów (listingów) tego
katalogu.
IncludesNoExec wyłącza funkcję exec.
AllowOverride dyrektywa1 dyrektywa2 ... - określa, które
dyrektywy kontroli dostępu mogą być znoszone przez dyrektywy
wybranych katalogów. Lista dyrektyw zawierać następujace słowa
kluczowe:
None wyłącza możliwość zgaszenia jakichkolwiek
dyrektyw.
All umożliwia znoszenie dyrektyw ogólnych przez dyrektywy
wybranych katalogów.
Options umożliwia korzystanie z dyrektyw Options w
katalogowych plikach dyrektyw.
FileInfo pozwala używać dyrektyw AddType i AddEncoding.
AuthConfig pozwala użyć dyrektyw AuthName, AuthType,
AuthUserFile,AuthGroupFile
Limit pozwala użyć dyrektyw Limit z pliku konfiguracyjnego
dostępu do katalogu.
AuthName nazwa - określa nazwę autoryzacji dla
katalogu
AuthType typ - określa typ stosowanej autoryzacji.
Jedynym obsługiwanym typem jest Basic
AuthUserFile nazwa_pliku - określa plik, w którym są
zapisane używane przy autoryzacji nazwy i hasła użytkownika.
Poniższa dyrektywa ustawia, że plikiem autoryzacji ma być
/etc/httpd/conf/.htaccess
AuthUserFile /etc/httpd/conf/.htaccess
Plik autoryzacji należy utworzyć za pomocą programu
/usr/sbin/htpasswd, mającego swoje konfigi w katalogu
/etc/httpd/support. Aby utworzyć plik autoryzacji i dodać
hasło dla użytkownika o nazwie gosc, należy napisać:
/usr/sbin/htpasswd -c /etc/httpd/conf/.htaccess
gosc
Adding password for gosc
New password: (podaj hasło)
Re-type new password: (powtórz hasło)
AuthGroupFile nazwa_pliku -określa plik, który
ma być sprawdzany pod kątem autentyczności grup.
Polecam duży artykuł w magazynie CHIP 5/2006 (str. 130-132) na temat plików .htaccess.
order ord - ta dyrektywa określa kolejność, w jakiej
realizowane są dwie inne dyrektywy - allow i deny. Kolejność może
być taka:
deny, allow realizuje dyrektywę deny przed allow
allow, deny realizuje dyrektywę allow przed deny
mutual-failure zezwala na dostęp wyłącznie tym hostom,
które są na liście allow.
deny from host1 host2 ... - ta dyrektywa określa hosty,
których żadania dostępu mają być odrzucone.
allow from host1 host2 ... - ta dyrektywa określa hosty,
których żadania dostępu mają być zaakceptowane. Aby wszystkie hosty
z jakiejś domeny miały dostęp do dokumentów WWW z danego katalogu,
należy użyć polecenia:
order deny,allow
allow from .com.edu.pl
można też podać adres sieci (z maską np. Allow from 192.168.0.0/24)
require jednostka jed1, jed2, ... - ta dyrektywa określa
użytkowników, którzy będą mieli dostęp do katalogu. Wartością
argumentu jednostka może być jedno z poniższych słów
kluczowych:
user - pozwala na dostęp tylko użytkownikom wymienionym z
nazwy na liście.
group - pozwala na dostęp tylko grupom wymienionym z nazwy
na liście
valid-user - pozwala na dostęp do katalogu tylko
użytkownikom wymienionym w pliku AuthUserFile (pod warunkiem, że
wpiszą oni odpowiednie hasło)