51, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta


Rozdział 51.
Konfigurowanie węzła WWW


Tim Parker

W tym rozdziale:

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.

0x01 graphic

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 jak poprzednio, dozwolone jest wprowadzenie większej liczby takich wpisów.

AddIcon Pozwala na podanie nazwy ikony wyświetlanej jako symbol pliku każdego z typów.

AddIconType Pozwala na określenie wyświetlanej ikony na podstawie typu MIME.

AddType Pozwala wyłączyć rozpoznawanie typu MIME dla plików o określonym rozszerzeniu.

Alias Pozwala na zastąpienie ścieżki dostępu krótszą nazwą, na przykład Alias data /usr/www/data.

DefaultType Definiuje domyślny typ MIME - zwykle text/plain.

DefaultIcon Określa, która ikona ma być używana domyślnie, jeśli aktywna jest opcja FancyIndexing (domyślnie jest to ikona zapisana w pliku icons/unknown.xbm).

DirectoryIndex Pozwala określić nazwę pliku, który należy zwrócić jeśli użytkownik nie zażądał żadnego konkretnego pliku. Domyślnie jest to plik index.html.

DocumentRoot Zawiera pełną ścieżkę dostępu do katalogu zawierającego dokumenty HTML. Domyślna wartość to /usr/local/etc/ httpd/htdocs.

FancyIndexing Pozwala na dodanie do listy indeksowanych plików ikon i nazw plików. Domyślną wartością jest on (załączone). Opcja ta jest potrzebna dla zapewnienia kompatybilności z pierwszą wersją HTTP.

HeaderName Zawiera nazwę pliku wyświetlanego na początku listy indeksowanych plików. Domyślnie jest to plik o nazwie Header.

IndexOptions Zawiera parametry indeksowania (między innymi FancyIndex­ing, IconsAreLinks, ScanHTMLTitles, SuppressLastModified, SupressSize i SuppressDescription).

ReadmeName Zawiera nazwę pliku wyświetlanego jako stopka wraz z danymi o zawartości katalogów. Domyślnie jest to plik o nazwie README.

Redirect Odwzorowuje ścieżkę dostępu na inny adres URL.

ScriptAlias Pozwala na zastąpienie ścieżki dostępu krótszą nazwą, podobnie jak polecenie Alias. Polecenie ScriptAlias używane jest w skryptach.

UserDir Zawiera nazwę katalogu, który może być użyty przez użytkowników do dostępu do httpd. Domyślnie jest to katalog public_html. Przeważnie należy wpisać tu nazwę katalogu zawierającego stronę główną użytkownika. Można również użyć wartości DISABLED (wyłączone).

Trzecim plikiem, którego zawartość należy przejrzeć i ewentualnie zmodyfikować, jest plik access.conf-dist, definiujący usługi dostępne dla przeglądarek WWW. Zwykle dostępne są wszystkie usługi, możesz jednak chcieć zmodyfikować ten plik dla zapewnienia wyższego poziomu bezpieczeństwa lub po to, by wyłączyć usługi nie obsługiwane przez Twój węzeł WWW. Format pliku conf-dist jest nieco inny niż format dwóch poprzednich plików. Używane są w nim polecenia dzielące cały plik na sekcje, w których znajdują się dyrektywy. Ogólnie format pojedynczego wpisu jest następujący:

<Directory nazwa_katalogu>
...
</Directory>

Wszystko, co znajduje się pomiędzy ogranicznikami <Directory> i </Directory>, to dyrektywy. Sprawa komplikuje się jeszcze bardziej, ponieważ w obrębie pliku może wystąpić kilka rodzajów dyrektyw. Najlepszym sposobem na dostosowanie pliku access. conf-dist w przypadku typowej instalacji serwera WWW jest trzymanie się poniższych rad.

  1. Znajdź dyrektywę Options i usuń opcję Indexes. Dzięki temu użytkownicy nie będą mogli przeglądać zawartości katalogu httpd. Inne opcje podawane po dyrektywie Options omówione zostaną za chwilę.

  1. Znajdź pierwszą dyrektywę Directory i sprawdź ścieżkę dostępu do katalogu ze skryptami cgi. Domyślnie jest to wartość /usr/local/etc/httpd/cgi-bin.

  2. Znajdź definicję zmiennej AllowOverride i ustaw jej wartość na None (żadne), dzięki czemu użytkownicy nie będą mogli zmieniać ustawień. Domyślną wartością jest All (wszystkie). Dostępne wartości zostaną krótko omówione w dalszej części tego podrozdziału.

  3. Znajdź dyrektywę Limit i nadaj jej żądaną wartość.

Dyrektywa Limit pozwala ograniczyć dostęp do serwera. Poniżej przedstawiamy listę dostępnych wartości.

allow Pozwala na dostęp do serwera WWW z systemu o nazwie podanej po słowie allow.

deny Nie pozwala na dostęp do serwera WWW z systemu o nazwie podanej po słowie deny.

order Określa porządek, w jakim odczytywane będą dyrektywy allow i deny (zwykle deny, allow, ale może również być odwrotnie).

require Umożliwia żądanie autoryzacji poprzez plik użytkownika, określony na podstawie wartości zmiennej AuthUserFile.

Dyrektywa Option zawiera kilka wartości o różnym przeznaczeniu. Domyślnie zawiera ona wpisy:

Options Indexes FollowSymlinks

Wpis Indexes powinien zostać usunięty już wcześniej. Wszystkie wpisy odnoszą się do katalogu, w którym znajduje się pole Options. Dostępne wartości to:

All Włączenie wszystkich opcji.

ExecCGI Umożliwienie wykonywania skryptów CGI z określonego katalogu.

FollowSymLinks Umożliwienie użycia przez program httpd dowiązań symbolicznych.

Includes Włączenie obsługi przez serwer plików include.

IncludesNoExec Włączenie obsługi przez serwer plików include, ale przy wyłączeniu opcji exec.

Indexes Umożliwienie użytkownikom przeglądania indeksów generowanych przez serwer (nie dotyczy indeksów skompilowanych wcześniej).

None Wyłączenie wszystkich opcji.

SymLinksIfOwnerMatch Umożliwienie użycia przez program httpd dowiązań symbolicznych pod warunkiem, że identyfikator właściciela dowiązania jest taki sam jak identyfikator właściciela pliku, do którego prowadzi dowiązanie.

Zmienna AllowOverride domyślnie ma wartość All, którą należy zmienić; dla większości systemów zalecana jest wartość none. Poniżej przedstawiamy wszystkie dostępne wartości.

All Umożliwienie kontroli dostępu przez pliki konfiguracyjne znajdujące się w każdym katalogu.

AuthConfig Załączenie obsługi kilku procedur zabezpieczających. Dostępne wartości to: AuthName (weryfikacja nazwy katalogu), AuthType (weryfikacja typu katalogu, choć dozwolony jest tylko jeden typ - Basic), AuthUserFile (określenie nazwy pliku zawierającego identyfikatory i hasła użytkowników) i AuthGroupFile (określenie nazwy pliku zawierającego nazwy grup).

FileInfo Uaktywnienie dyrektyw AddType i AddEncoding.

Limit Uaktywnienie dyrektywy Limit.

None Wyłączenie kontroli dostępu poprzez pliki konfiguracyjne.

Options Uaktywnienie dyrektywy Options.

Teraz w plikach konfiguracyjnych powinny już znajdować się prawidłowe dane. Choć składnia tych plików nie jest zbyt intuicyjna, przyjrzenie się wartościom domyślnym pozwala łatwo zorientować się, jaki format powinny mieć wprowadzane modyfikacje. Można przystąpić do uruchomienia oprogramowania serwera WWW.

Uruchamianie serwera WWW

Po zakończeniu procesu konfiguracji przyszła pora na wypróbowanie oprogramowania serwera WWW. Dane o tym, czy ma ono działać jako program rezydentny, czy też będzie uruchamiane przez proces inetd, zapisane zostały w odpowiednich plikach konfiguracyjnych. Sposób uruchamiania oprogramowania jest nieco inny w obu tych przypadkach, ale w wierszu poleceń zawsze można użyć następujących opcji:

-d ścieżka dostępu do katalogu głównego serwera (używana tylko wtedy, jeśli wartość domyślna nie jest prawidłowa),

-f nazwa pliku konfiguracyjnego, o ile nie ma to być domyślny plik httpd. conf,

-v wyświetlenie numeru wersji.

Jeśli do uruchamiania oprogramowania serwera WWW chcesz używać procesu inetd, musisz do pliku /etc/services dopisać wiersz

http port/tcp

zezwalający programowi inetd na uruchamianie serwera WWW (port to numer używanego portu, zwykle 80).

Następnie do pliku /etc/inetd.conf należy dodać polecenie pozwalające na uruchomienie programu httpd:

httpd stream tcp nowait nobody /usr/web/httpd

Ostatnia pozycja określa ścieżkę dostępu do programu serwera WWW. Po zrestartowaniu procesu inetd (można to zrobić używając polecenia kill i uruchamiając go ponownie lub restartując system) usługa powinna być już dostępna przez port o numerze określonym w pliku /etc/services.

Jeśli oprogramowanie serwera WWW ma działać jako program rezydentny, można uruchomić je bezpośrednio z wiersza poleceń:

httpd &

Lepiej jednak dodać odpowiednie polecenia do jednego z plików rc przetwarzanych podczas uruchamiania systemu. Odpowiedni wpis ma zwykle postać:

#start httpd
if [ -x /usr/web/httpd ]
then
/usr/web/httpd
fi

Powinieneś oczywiście dostosować ścieżkę dostępu do programu httpd do wymagań swojego systemu. Po ponownym uruchomieniu systemu oprogramowanie serwera powinno obsługiwać port o numerze domyślnym.

Aby przetestować działanie serwera WWW, uruchom dowolną przeglądarkę stron WWW i w polu URL wprowadź adres

http://nazwa_serwera

gdzie nazwa_serwera to nazwa Twojego serwera WWW. Możesz to zrobić zarówno przez Internet, jak i z dowolnego komputera w sieci lokalnej (jeśli jesteś podłączony do sieci lokalnej). Jeżeli wyświetlona zostanie zawartość pliku index.html znajdującego się w katalogu głównym serwera WWW, wszystko jest w porządku. W przeciwnym przypadku poszukaj informacji o problemie w plikach, do których rejestrowane są błędy i przejrzyj jeszcze raz pliki konfiguracyjne.

Jeśli nie zainstalowałeś jeszcze żadnej przeglądarki internetowej, możesz za pomocą programu telnet sprawdzić, czy serwer WWW działa prawidłowo. Wydaj następujące polecenie, podstawiając nazwę swojego serwera i numer portu, jeśli jest inny niż 80:

telnet www.wizard.tpci.com 80

O ile serwer działa prawidłowo, powinny zostać wyświetlone następujące informacje:

Connected to wizard.tpci.com
Escape character is '^]'.
HEAD/HTTP/1.0
HTTP/1.0 200 OK

Powinny również pojawić się informacje o dacie i zawartości serwera. Prawdopodobnie nie będziesz miał dostępu do żadnego pliku, ale dzięki temu wiesz, że serwer działa prawidłowo.

Apache

Apache to pakiet oprogramowania zawierający serwer WWW. Staje się on coraz popularniejszy, głównie dzięki jego elastyczności i istnieniu wersji przeznaczonych dla wielu platform sprzętowych i systemów operacyjnych. Apache jest oparty na serwerze Mosaic, o którym wspomniano już wcześniej w tym rozdziale, ale zawiera dość sporo nowego kodu. Został napisany jako program darmowy i jest ogólnodostępny. W sieci Internet działa spora grupa użytkowników służących pomocą w razie problemów, a w księgarniach dostępnych jest również kilka książek na jego temat.

0x01 graphic

Podczas pisania tej książki najnowsza wersja serwera Apache miała numer 1.2. Dostępnych jest również wiele starszych wersji, ale w wersji 1.2 wprowadzono na tyle dużo istotnych zmian, że warto ją załadować z któregoś z węzłów FTP lub też z węzła http://www.apache.org, poświęconego temu programowi.

Użycie programu make z pakietem Apache

Serwer Apache rozprowadzany jest czasem tylko w postaci nie skompilowanego kodu źródłowego. W niektórych dystrybucjach Linuxa dostarczanych na dyskach CD-ROM dostępne są również pliki wykonywalne, co pozwala na pominięcie etapu kompilacji. Jeśli jednak załadowałeś oprogramowanie Apache z węzła FTP czy poprzez stronę WWW, najprawdopodobniej będziesz musiał je skompilować sam. Nie jest to trudne, ponieważ cały proces kompilacji został zautomatyzowany za pomocą programu użytkowego make. Program make zostanie omówiony dokładniej w rozdziale 56. „Zarządzanie kodem źródłowym”, ale w tym podrozdziale nie musisz przejmować się szczegółami jego działania.

Najpierw upewnijmy się, że oprogramowanie Apache jest gotowe do zainstalowania. Jeśli pobrałeś je z Internetu, posiadasz prawdopodobnie pojedynczy, skompresowany plik (o nazwie apache.tar i z rozszerzeniem .Z lub .gz), który należy skopiować do katalogu tymczasowego (o dowolnej nazwie) i rozpakować wydając jedno z poleceń:

uncompress apache.tar.Z
gunzip apache.tar.gz

zależnie od rozszerzenia posiadanego pliku (programy do kompresji i dekompresji plików zostały omówione w części drugiej „Poznawanie Linuxa” i części czwartej „Linux dla administratorów”).

0x01 graphic

Jeśli używasz wersji programu tar rozprowadzanej na licencji GNU (która jest dołączana do większości systemów linuxowych), możesz za jednym zamachem zdekompresować plik i wydobyć pliki z archiwum tar wydając polecenie:

tar zxvf apache.tar.gz

Po zdekompresowaniu plik będzie miał nazwę apache.tar (tę samą, którą miał przed dekompresją, ale bez rozszerzenia .Z czy .gz; poniżej założymy, że jest to nazwa apache.tar - jeśli w Twoim przypadku jest inaczej, powinieneś podstawić odpowiednią nazwę). Plik tar zawiera wszystkie pliki wymagane przez Apache - należy je z niego wydobyć wydając polecenie:

tar xvf apache.tar

Spowoduje ono utworzenie sporej liczby plików, o nazwach składających się w większości z małych liter, choć nazwy kilku z nich, na przykład pliku README, składają się z również wielkich liter. W pliku README znajdują się wskazówki dotyczące kompilowania serwera Apache po skonfigurowaniu systemu. Prawidłowe informacje konfiguracyjne, dotyczące oprogramowania i sprzętu dostępnego w Twoim systemie, powinny znaleźć się w pliku Configuration, który można edytować dowolnym edytorem tekstów zapisującym pliki w standardzie ASCII.

Plik Configuration ma dość dziwną składnię, umożliwiającą bardzo dokładne skonfigurowanie systemu; niuanse konfiguracji są jednak zbyt skomplikowane, by wyjaśniać je w rozdziale takim jak ten. Na szczęście większością drobiazgów nigdy nie będziesz musiał się przejmować. Plik Configuration jest używany przez skrypt o nazwie Configure, który generuje plik Makefile, używany z kolei przez program make do skompilowania kodu źródłowego. W pliku Configuration znajdują się zasadniczo dane czterech typów:

0x01 graphic

Nie powinieneś edytować pliku Makefile bezpośrednio. Wszystkie wprowadzone modyfikacje i tak zostaną utracone po uruchomieniu skryptu Configure. Plik Makefile jest generowany automatycznie przez skrypt Configure na podstawie informacji zawartych w pliku Configuration.

Praktycznie we wszystkich przypadkach jedyne modyfikacje pliku Configuration, których trzeba dokonać, polegają na usunięciu bądź wstawieniu symbolu komentarza w odpowiednich wierszach. Wpisy dotyczące modułów i reguł można pominąć, chyba że zamierzasz zagłębić się w szczegóły konfiguracji systemu. Jeśli spojrzysz na zawartość pliku Configuration, zauważysz, że większość odniesień do sekcji Module jest zaznaczona jako komentarz - można usunąć odpowiednie symbole komentarza, dzięki czemu podczas generowania pliku Makefile moduły będą również brane pod uwagę. Standardowa wersja serwera Apache dla Linuxa zawiera plik Configuration, w którym wszystkie opcje mają prawidłowe wartości - możesz jednak przejrzeć ten plik, aby zorientować się, jakie opcje są dostępne.

0x01 graphic

Choć usuwanie symboli komentarza poprzedzających większość sekcji pliku Configuration nie wymaga żadnego wysiłku, trzy z sekcji powinny pozostać w formie komentarza. Moduł cern_meta_module używany jest dla zapewnienia kompatybilności ze starą wersją serwera CERN. Moduł dld_module pozwala na obsługę dynamicznego dołączania kodu i nie jest używany w systemie Linux. Trzeci moduł, msql_auth_module, umożliwia obsługę dużych plików z hasłami użytkowników za pomocą mechanizmów SQL i jest bezużyteczny, o ile nie jest zainstalowany system Minerva SQL.

Aby uruchomić proces generowania pliku Makefile na podstawie danych zapisanych w pliku Configuration, należy uruchomić skrypt Configure (zauważ, że polecenie to rozpoczyna się od wielkiej litery - musi być wpisane dokładnie tak, jak pojawia się na wydruku zawartości katalogu). W tym celu upewnij się, że jesteś zalogowany jako root i po prostu wpisz nazwę skryptu:

Configure

Na ekranie pojawi się kilka komunikatów, najprawdopodobniej takiej postaci:

Using Configuration as config file
Configured for FreeBSD platform

Informacje wyświetlane w drugim wierszu mogą być nieco inne, zależnie od wersji systemu Apache. Na koniec należy uruchomić program użytkowy make (który wymaga, by zainstalowany był kompilator języka C i kilka programów użytkowych):

make

Domyślnie, program make przetwarza plik o nazwie Makefile znajdujący się w katalogu bieżącym. Następnie wyświetlonych zostanie kilka komunikatów generowanych przez kompilator (o ile został on zainstalowany - w przeciwnym przypadku pojawią się komunikaty o błędach) i program make, po czym program ten zakończy działanie. Wygenerowany zostanie plik wykonywalny o nazwie httpd, który zawiera program rezydentny do obsługi serwera HTTP. Jeśli spróbujesz go uruchomić, prawdopodobnie otrzymasz komunikat, że brakuje jakiegoś pliku - program httpd próbuje bowiem znaleźć plik konfiguracyjny (który zwykle nazywa się httpd.conf).

Edycja pliku konfiguracyjnego

Po samodzielnym skompilowaniu serwera Apache (albo jeśli otrzymałeś gotową, skompilowaną wersję) należy wprowadzić odpowiednie informacje do pliku konfiguracyjnego, który zwykle nazywa się httpd.conf. W katalogu z systemem Apache powinien znajdować się podkatalog o nazwie conf, a w nim trzy pliki konfiguracyjne o nazwach srm.conf-dist, access.conf-dist i httpd.conf-dist. Należy skopiować je, zmieniając nazwy plików w następujący sposób:

cp srm.conf-dist srm.conf
cp access.conf-dist access.conf
cp httpd.conf-dist httpd.conf

Otwórz plik httpd.conf za pomocą dowolnego edytora tekstu ASCII. Plik ten zawiera ogólne informacje o serwerze, takie jak numer portu, którego należy użyć, identyfikator użytkownika, który ma być właścicielem procesu itp. Większość tych informacji nie wymaga korekty, ale jeśli chcesz, możesz dostosować je do własnych wymagań. Następnie otwórz plik srm.conf, zawierający dane o drzewie dokumentów dla stron głównych i specjalne instrukcje HTML. Również ten plik nie wymaga modyfikacji. Ostatni z plików konfiguracyjnych, access.conf, pozwala zdefiniować podstawowe poziomy dostępu do systemu - możesz dostosować go do własnych wymagań lub pozostawić wartości domyślne.

0x01 graphic

Serwer Apache dostarczany jest z trzema plikami konfiguracyjnymi, ale wszystkie zawarte w nich dane można umieścić w jednym pliku o nazwie httpd.conf. Przy konfigurowaniu systemu łatwiej jest jednak edytować trzy mniejsze pliki. Jeśli chcesz, aby Apache zignorował pliki access.conf i srm.conf, dodaj do pliku httpd.conf następujące polecenia:

AccessConfig /dev/null
ResourceConfig /dev/null

i usuń pliki access.conf i srm.conf.

Aby uruchomić program httpd z przygotowanymi plikami konfiguracyjnymi, wydaj polecenie:

httpd -f sciezka/httpd.conf

sciezka to pełna ścieżka dostępu do katalogu, w którym znajduje się plik konfiguracyjny. Opcja -f pozwala na użycie pliku konfiguracyjnego o dowolnej nazwie. Powyższe polecenie spowoduje uruchomienie programu rezydentnego httpd - możesz sprawdzić poleceniem ps, że faktycznie pozostaje on w pamięci.

Opcje serwera Apache httpd

Jedną z dostępnych opcji serwera httpd w wersji Apache poznałeś przed chwilą. Poza nią istnieje jeszcze tylko kilka innych opcji, oto ich lista:

-d pozwala podać główny katalog dokumentów,

-f umożliwia podanie nazwy pliku konfiguracyjnego serwera,

-h pozwala wyświetlić listę obowiązujących dyrektyw (pochodzących z pliku Configuration),

-v podaje numer wersji,

-X załącza wyświetlanie informacji przydatnych w czasie uruchamiania systemu.

W nowych wersjach serwera Apache pojawia się zwykle kilka innych opcji, ale większość z nich powoduje tylko drobne zmiany w zachowaniu lub też ułatwia uruchamianie systemu. Pełną listę opcji możesz otrzymać wydając polecenie:

httpd -?

lub też przeglądając strony man czy dokumentację dostępną w węźle apache.org w katalogu /docs.

Konfigurowanie serwera Apache
w niewielkim węźle WWW

Aby nie komplikować niepotrzebnie zagadnienia, założymy że chcesz używać Apache jako serwera WWW dla sieci lokalnej. Komputery w tej sieci będą łączyć się z serwerem za pomocą przeglądarek internetowych. Podany poniżej prosty przykład pokazuje, w jaki sposób można skonfigurować serwer Apache w prostej sieci; można z łatwością zmodyfikować konfigurację tak, by udostępniać strony WWW w sieci Internet.

Rozpoczniemy od skonfigurowania głównego katalogu z dokumentami. Załóżmy, że serwer ma działać w systemie o nazwie darkstar. Według konwencji używanej przez Apache komputer ten nazywany będzie site.darkstar. Pliki konfiguracyjne znajdą się w podkatalogu conf katalogu site.darkstar (na przykład /usr/web/site.darkstar/ conf).

Katalog główny dokumentów można zdefiniować za pomocą opcji -d polecenia httpd:

httpd -d /usr/web/site.darkstar

Wszystkie dokumenty udostępniane w węźle WWW powinny znajdować się w katalogu głównym dokumentów lub w którymś z jego podkatalogów - w dokumentach HTML muszą wówczas znaleźć się odpowiednie odnośniki.

Możliwe jest również dostosowanie wielu innych aspektów działania serwera Apache, ale jest to proces dość czasochłonny i jego wyjaśnienie zajęłoby pewnie ze sto stron. Jeśli chcesz dowiedzieć się więcej o systemie Apache, zapoznaj się z dokumentacją dostępną w węźle apache.org albo zaopatrz się w jedną z książek poświęconych temu tematowi.

Podsumowanie

Utworzenie własnej strony głównej wymaga użycia jednego z narzędzi generujących kod w języku HTML albo napisania jej samodzielnie za pomocą dowolnego edytora tekstów. Omówienie języka HTML wykracza poza zakres tej książki, ale dostępnych jest wiele innych publikacji na ten temat. Język HTML jest łatwy do opanowania. Posiadając informacje podane w tym rozdziale, powinieneś być w stanie założyć własną stronę główną i pozwolić przeglądać ją wszystkim użytkownikom Internetu.

Zależnie od tego, jakich informacji poszukujesz, możesz teraz przejść do innych rozdziałów.

Pisanie skryptów CGI dla stron WWW omówione jest w rozdziale 52. „Skrypty CGI”.

Język HTML, używany do tworzenia stron WWW, przedstawiamy w rozdziale 53. „Podstawy języka HTML”.

Java, język przeznaczony głównie do rozszerzania funkcjonalności stron WWW, omówiony jest w rozdziale 54. „Java i JavaScript”.

772 Część VII Konfiguracja węzła internetowego

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

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

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



Wyszukiwarka

Podobne podstrony:
43, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
34, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
58, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
26, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
08, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
10, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
57, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
29, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
46, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
60, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
36, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
49, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
62, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
D, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
55, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
28, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
61, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
42, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
03, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta

więcej podobnych podstron