51.DOC

(137 KB) Pobierz









Rozdział 51.
Konfigurowanie węzła WWW









E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\51.DOC              771










Rozdzia³ 51. ¨ Konfigurowanie węzła WWW              771

Tim Parker

W tym rozdziale:

u                                          Oprogramowanie serwera WWW             

u                                          Apache             

Nie ma chyba nikogo, kto nie słyszałby jeszcze o stronach WWW (ang. World Wide Web). Jest to najpopularniejszy aspekt Internetu. Właśnie z powodu popularności WWW coraz więcej użytkowników sieci decyduje się na założenie własnych serwerów WWW i utworzenie swoich stron głównych. Obecnie dostępnych jest coraz więcej wyrafinowanych pakietów oprogramowania działających jako serwery WWW dla różnych systemów operacyjnych. Linux, oparty na systemie UNIX, również zawiera oprogramowanie potrzebne do założenia własnego serwera WWW.

Do skonfigurowania węzła WWW nie jest potrzebne żadne wymyślne oprogramowanie – wystarczy trochę czasu i odpowiednie dane konfiguracyjne. O tym właśnie traktuje ten rozdział. Przyjrzymy się bliżej zagadnieniu konfiguracji serwera WWW w systemie linuxowym, przeznaczonego dla przyjaciół, użytkowników sieci lokalnej czy też dla całego Internetu.

Jednym z najważniejszych powodów popularności stron WWW, oprócz możliwości multimedialnych, są hiperłącza. Pozwalają one przenosić się jednym kliknięciem z jednego dokumentu do drugiego, z serwera na serwer, od grafiki do filmów i tak dalej. Instrukcje powodujące odpowiednie przejścia są zapisane w kodzie stron WWW.

Strony WWW obsługiwane są przez dwie warstwy oprogramowania: oprogramowanie klienta WWW (nazywane często przeglądarką WWW) i oprogramowanie serwera. Bardzo popularne są programy klientów WWW takie jak Netscape czy Mosaic, ale dostępne są również inne pakiety, niektóre przeznaczone do pracy wyłącznie pod kontrolą Linuxa czy X Window.

Oprogramowanie serwera WWW

Dla systemu Linux dostępne są trzy główne wersje serwera WWW, pochodzące odpowiednio z organizacji NCSA, CERN i Plexus. Najłatwiejszy w użyciu jest system opracowany przez NCSA; organizacja ta opracowała również przeglądarkę Mosaic. Jest on niewielki i szybki, może działać jako program rezydentny, może też być uruchamiany przez proces inetd; poza tym zapewnia dość wysoki poziom bezpieczeństwa. W tym rozdziale omówimy proces konfiguracji pakietu pochodzącego właśnie z NCSA, choć z łatwością użyć można również dwóch pozostałych pakietów (dostosowując odpowiednio dane konfiguracyjne). W wielu węzłach FTP i BBS dostępny jest również dość popularny serwer WWW o nazwie Apache – zajmiemy się nim w następnym podrozdziale, po omówieniu bardziej tradycyjnych serwerów WWW.

 

Oprogramowanie serwera WWW w trzech wymienionych wcześniej wersjach dostępne jest poprzez anonimowe FTP lub strony WWW pod następującymi adresami:

CERN:               ftp://ftp.w3.org/pub/httpd (FTP)

NCSA:               ftp.ncsa.uiuc.edu/Web/httpd/Wnix/ncsa_httpd

http://hoohoo.ncsa.uiuc.edu (WWW)

Plexus:http://www.sandelman.ocunix.on.ca/server/doc/plexus.html

Oprogramowanie pochodzące z NCSA dostępne jest zarówno w postaci kodu źródłowego, jak i w wersji skompilowanej. Użycie wersji skompilowanej jest znacznie prostsze, ponieważ nie trzeba konfigurować i kompilować kodu źródłowego. Pliki wykonywalne przeważnie dostępne są w postaci zarchiwizowanej programem tar i skompresowanej, więc należy je rozpakować. Często spotykane są również gotowe do użycia wersje dostarczane na płytach CD-ROM. Jeśli posiadasz skompresowaną wersję programu serwera WWW, powinieneś, trzymając się wskazówek zawartych w pliku README lub podobnym, rozpakować pliki do odpowiednich katalogów.

Rozpakowywanie plików
z oprogramowaniem serwera WWW

Jeśli oprogramowanie w postaci kodu źródłowego lub skompilowane otrzymałeś z węzła FTP czy BBS, prawdopodobnie będziesz je musiał najpierw rozpakować (za pomocą programów tar i unzip – powinieneś jednak sprawdzić to w dołączonych plikach README, w przeciwnym przypadku może okazać się, że robisz to niepotrzebnie). Zwykle należy utworzyć osobny katalog dla oprogramowania WWW, przejść do niego i rozpakować otrzymane pliki, na przykład wydając polecenie

 

zcat httpd_X.X_XXX.tar.Z | tar xvf –

W nazwie tych plików często znajduje się, oprócz numeru wersji, nazwa platformy, dla której przeznaczone jest oprogramowanie – na przykład httpd_1.5_linux.tar.Z. Jako argument polecenia zcat powinieneś podać pełną nazwę otrzymanego pliku. Instrukcje dotyczące instalacji czasem dostarczane są w postaci osobnego pliku tar, na przykład Install.tar.Z, który powinieneś również zdobyć i rozpakować poleceniem

 

zcat Install.tar.Z

Podczas wydawania powyższego polecenia katalogiem bieżącym powinien być katalog docelowy – inaczej będziesz musiał przenosić ręcznie sporą liczbę plików. Pliki z oprogramowaniem serwera WWW można umieścić w dowolnym miejscu, ale dobrym pomysłem jest utworzenie dla nich odrębnego katalogu, na przykład /usr/web czy /var/web, dzięki czemu łatwiej będzie kontrolować prawa dostępu do tych plików.

Po zdekompresowaniu odpowiednich plików i umieszczeniu bibliotek we właściwych katalogach, warto przyjrzeć się podkatalogom utworzonym automatycznie. Wśród nich powinny znaleźć się następujące podkatalogi:

cgi-bin              standardowy interfejs pomiędzy stronami WWW a programami i skryptami;

conf              pliki konfiguracyjne;

icons              ikony przeznaczone do użycia na stronach głównych;

src              kod źródłowy i (czasem) pliki wykonywalne;

support              aplikacje wspierające obsługę WWW.

Kompilowanie oprogramowania serwera WWW

Jeśli nie musisz modyfikować i rekompilować kodu źródłowego dostosowując go do potrzeb Linuxa (ponieważ posiadasz linuxową wersję programu), możesz pominąć szczegółowe omówienie konfiguracji znajdujące się w dalszej części tego podrozdziału. Z drugiej strony warto jednak wiedzieć, co znajduje się w kodzie źródłowym, ponieważ dzięki temu można lepiej zrozumieć współdziałanie systemu i oprogramowania serwera. Jeśli posiadasz ogólną wersję kodu źródłowego serwera WWW opracowanego przez NCSA, nie dostosowaną do Twojego systemu, musisz przed kompilacją skonfigurować kod źródłowy.

Rozpocznij od wprowadzenia do pliku src/Makefile informacji o systemie. Powinieneś sprawdzić wartości kilku zmiennych:

AUX_CFLAGS              pozwala podać dodatkowe opcje kompilatora – usuń komentarz z wiersza definiującego wersję dla Linuxa (zwykle odpowiednie wiersze są opatrzone komentarzem umożliwiającym ich identyfikację);

CC              pozwala na podanie nazwy kompilatora języka C (zwykle cc lub gcc);

EXTRA_LIBS              pozwala na dołączenie dodatkowych bibliotek (które nie są wymagane w systemie Linux);

FLAGS              pozwala podać dodatkowe opcje dla konsolidatora (większość wersji linuxowych nie wymaga żadnych dodatkowych opcji).

Należy również przyjrzeć się wartości zmiennej CFLAGS, zawierającej listę znaczników kompilatora. Niektóre z nich mogą być już ustawione. Oto dostępne wartości:

-DSECURE_LOGS              zabezpiecza przed zakłócaniem procesu rejestrowania danych, prowadzonego przez serwer WWW, przez skrypty CGI;

-DMAXIMUM_DNS              pozwala na użycie bezpieczniejszego systemu tłumaczenia nazw (kosztem wydajności);

-DMINIMAL_DNS              nie zezwala na zwrotne tłumaczenie nazw, co poprawia wydajność;

-DNO_PASS              zabezpiecza przed uruchamianiem wielu procesów potomnych;

-DPEM_AUTH              uaktywnia schematy autoryzacji PEM/PGP

-DXBITHACK              pozwala na sprawdzanie, czy plik HTML jest wykonywalny;

-O2              załącza optymalizację.

Najprawdopodobniej nie będziesz musiał modyfikować wartości zmiennej CFLAGS, ale powinieneś być świadomy jej przeznaczenia. Po sprawdzeniu i ewentualnym poprawieniu danych zapisanych w pliku src/Makefile należy skompilować kod źródłowy, wydając polecenie:

 

make linux

Jeśli jego wykonanie spowoduje wyświetlenie komunikatów o błędach, powinieneś jeszcze raz dokładnie sprawdzić dane w pliku konfiguracyjnym. Najczęściej przyczyną problemów jest źle zdefiniowana platforma (lub wybranie kilku platform jednocześnie).

Konfiguracja oprogramowania serwera WWW

Po zainstalowaniu kodu źródłowego w odpowiednich katalogach i skompilowaniu go dla Linuxa należy skonfigurować system. Proces ten powinieneś rozpocząć od pliku httpd.conf-dist. Skopiuj go do pliku o nazwie httpd.conf – jest to nazwa pliku konfiguracyjnego programu httpd. Zanim zaczniesz go modyfikować, powinieneś zdecydować, czy chcesz uruchamiać program httpd jako program rezydentny, czy też ma on być uruchamiany przez proces inetd. Jeśli przewidujesz częste użycie tego programu, powinieneś wybrać pierwszą wersję. W przeciwnym przypadku obie możliwości są równie dobre.

W pliku httpd.conf zdefiniowanych jest kilka wartości, które wymagają sprawdzenia lub wprowadzenia jakichś danych. Każda z definicji zmiennych ma składnię:

 

zmienna wartość

Pomiędzy nazwą zmiennej a wartością nie pojawia się znak równości ani żaden inny specjalny symbol. Oto kilka przykładowych wierszy:

 

FancyIndexing              on
HeaderName              Header
ReadmeName              README

Ścieżki dostępu do plików i katalogów zwykle podawane są nie jako pełne ścieżki dostępu, ale względem katalogu serwera WWW. Poniżej podajemy zmienne, których wartości należy dostosować do wymagań systemu.

AccessConfig              Lokalizacja pliku konfiguracyjnego access.conf – domyślnie jest to conf/access.conf. W tym miejscu można użyć zarówno pełnej, jak i względnej ścieżki dostępu.

AgentLog              Nazwa pliku, w którym rejestrowane będą dane o typie i wersji przeglądarki WWW używanej do połączenia się z serwerem. Domyślna wartość to logs/agent_log.

ErrorLog              Nazwa pliku, do którego zapisywane będą dane o błędach. Domyślną wartością jest logs/error_log.

Group              Identyfikator grupy będącej właścicielem procesu serwera (używany tylko, jeśli serwer działa jako program rezydentny). Może to być zarówno nazwa, jak i identyfikator numeryczny grupy, z tym, że należy poprzedzić go symbolem #. Domyślna wartością jest #-1.

MaxServers              Maksymalna dozwolona liczba procesów potomnych.

PidFile              Nazwa pliku, w którym przechowywane będą identyfikatory procesów wszystkich kopii programu httpd. Domyślna wartość to logs/httpd.pid. Wartość ta jest używana tylko wtedy, gdy serwer działa jako program rezydentny.

Port              Numer portu, pod którym należy oczekiwać na połączenia programów klientów WWW. Domyślnie jest to port 80. Jeśli nie chcesz, by serwer WWW był ogólnodostępny, zmień tę wartość.

ResourceConfig              Ścieżka dostępu do pliku srm.conf, zwykle conf/srm.conf.

ServerAdmin              Adres e-mailowy administratora.

ServerName              Pełna nazwa domenowa serwera.

ServerRoot              Ścieżka dostępu do katalogu, powyżej którego użytkownicy nie będą mogli się dostać (zwykle jest to katalog główny serwera WWW lub katalog /usr/local/etc/httpd).

ServerType              Typ serwera: standalone (samodzielny program rezydentny) lub inetd (uruchamiany przez proces inetd).

StartServers              Liczba procesów serwera, które uruchamiane są przy uruchamianiu programu rezydentnego.

TimeOut              Czas (w sekundach), przez jaki należy czekać na odpowiedź klienta przed przerwaniem połączenia (domyślnie zmienna ta ma wartość 1800 i należy ją zmniejszyć).

TransferLog              Ścieżka dostępu do pliku, w którym rejestrowane będą dane o dostępie do plików. Domyślną wartością jest logs/access_ log.

TypesConfig              Ścieżka dostępu do pliku konfiguracyjnego MIME. Domyślnie jest to conf/mime.conf.

User              Identyfikator użytkownika będącego właścicielem procesu serwera WWW (używany tylko wtedy, gdy serwer działa jako program rezydentny). Można tu podać identyfikator tekstowy lub liczbowy, ale poprzedzony symbolem #. Domyślna wartość to #-1.

Należy również sprawdzić dane o zasobach serwera, zapisane w pliku srm.conf. Oto lista zmiennych, których wartości mogą wymagać modyfikacji.

AccessFileName              Zawiera nazwę pliku z danymi o prawach dostępu (domyślnie .htaccess).

AddDescription              Pozwala wprowadzić opis typu pliku, na przykład AddDescript­ion PostScript file *.ps. Dozwolone jest wprowadzenie większej liczby takich wpisów.

AddEncoding              Pozwala podać, że określony typ plików jest w jakiś sposób zakodowany, na przykład AddEncoding compress Z. Podobnie...

Zgłoś jeśli naruszono regulamin