J2ME, Android. Aplikacje dla urządzeń mobilnych.
ASP.NET  DOKUMENTACJA  FLASH  J2EE SERVLET JSP  J2ME MOBILE  JAVASCRIPT  OPROGRAMOWANIE  PHP  SERWER  SQL  TRENDY  WYSZUKIWARKI  XML 

Kurs Apache (1)

Witam serdecznie w kursie poświęconym najpopularniejszemu Serwerowi WWW Apache.

Znajdziecie tu podstawowe informacje takie jak instalacja, konfiguracja, możliwości, usługi serwera, technologie, zagadnienia bezpieczeństwa a także przykłady z pliku z pliku konfiguracyjnego httpd.conf.

Kurs Apache (1)

 
 spis treści:
Kurs Apache (1)1. Kurs Apache (1)
Wstęp

Serwer WWW jest to oprogramowanie odpowiedzialne za akceptowanie zapytań klienta, odszukiwanie określonych plików, uruchamianie skryptów php i zwracanie ich zawartości (lub wyników działania skryptów). Większość serwerów WWW pracujących w sieci Internet, to serwery pracujące na maszynach UNIX.

Do głównych typów serwerów WWW możemy zaliczyć: Serwer NCSA, Serwer Apache, Serwer CERN i Serwery Netscape. Z wymienionych serwerów najbardziej popularnym i najczęściej stosowanym serwerem jest Apache.

Serwer Apache pochodzi od serwera NCSA - National Center for Supercomputing Applications, opracowanego w 1995 roku na zlecenie rządu Stanów Zjednoczonych. Jego dominacja na rynku serwerów WWW jest ogromna i wynosi ok. 60%. Popularność serwera Apache jest pochodną popularności samego systemu Linux oraz faktu, że zarówno system, jak i serwer są całkowicie bezpłatne dla wszelkich zastosowań. Możliwości serwera pozwalają na publikację w Internecie wszystkich typów stron, począwszy od zwyczajnej strony firmowej, a skończywszy na dużych serwisach połączonych z bazami danych. Skalowalność oraz dostępność na praktycznie wszystkie liczące się platformy sprzętowe i programowe jest możliwa dzięki modułowości budowy, która pozwala na tworzenie rozwiązań wieloplatformowych, szybkich oraz stabilnych.

Serwer Apache ma minimalne wymagania sprzętowe - małe (np. testowe) serwisy WWW mogą pracować nawet na komputerach klasy 486. Minimalizuje to w znacznym stopniu inwestycje związane z uruchomieniem usługi WWW.

Umożliwiający obsługę między innymi skryptów CGI, PHP (liczniki odwiedzin, księgi gości, statystyki, formularze itp.) stanowi podstawę do testowania nowo utworzonych stron przed publikacją ich w sieci. Serwer Apache możemy również wykorzystywać do integracji z bazami danych za pomocą php czy perla.

Rozwojem serwera zajmuje się zespół wybranych, doświadczonych programistów tzw. Apache Group, którzy wraz z użytkownikami rozwijają program jako Apache Projekt, a główna baza programu znajduje się pod adresem http://www.apache.org/, gdzie znajdziemy informacje na temat samego serwera.

Oficjalna witryna serwera Apache jest otwarta dla wszystkich, którzy chcieliby się podzielić swoimi doświadczeniami na temat serwera WWW - jego pracy, znalezionych błędach oraz nowych rozwiązań.

Do głównych zadań serwera WWW należy:

- pracować szybko bez powodowania obciążeń komputera na którym jest uruchomiony
- tryb wielozadaniowy: możliwość obsługi jednocześnie większej ilości zadań
- kontrola nad użytkownikami
- wysyłanie komunikatów o błędach w zależności od popełnionego rodzaju błędu
- uzgodnienie formy i języka komunikacji co sprawia zdolność serwera do porozumiewania się z klientem w danym języku
- udostępnianie danych różnego rodzaju formatu
- praca w charakterze serwera pośredniczącego (proxy server)
- bezpieczeństwo danych

Instalacja

Przed zainstalowaniem Apache musimy zdecydować czy będziemy instalować go za pomocą gotowych plików binarnych (pakiety rpm), czy plików źródłowych. Pakiet RPM z serwerem Apache znajdziemy pośród pakietów znajdujących się na płycie z linuksem lub pobieramy go z serwera FTP.

Następnie w linii poleceń wpisujemy polecenie:
 rpm -ivh nazwa_pakietu.rpm 

nazwa_pakietu - nazwa pakietu RPM zawierającego Apache.

Ten sposób instalacji nie udostępnia jednak wszystkich możliwości serwera z których byśmy chcieli skorzystać. W przypadku domowej instalacji systemu wystarczająca jest instalacja z pakietów RPM, jednak poważne zastosowania wymagają maksymalnej wydajności.

Dlatego też lepszym rozwiązaniem jest instalacja poprzez skompilowanie kodu źródłowego. Najnowszą wersję programu możemy ściągnąć ze strony http://www.apache.org Zainstalowanie wersji źródłowej pozwoli nam na dobranie odpowiednich modułów, których zadaniem będzie zapewnienie odpowiedniej funkcjonalności serwera. Przy wyborze modułów należy pamiętać, że wiele z domyślnych modułów jest potrzebnych do prawidłowej i bezpiecznej pracy serwera.

Pierwszym etapem jest rozpakowanie pobranego programu:
 tar -zxvf 1.3.12.tar.gz 

Po rozpakowaniu został utworzony katalog apache_1.3.12.
W katalogu tym znajdują się pliki źródłowe, pliki skompilowane, ikony, manual apache, przykładowe pliki konfiguracyjne.
Przechodzimy do katalogu src. Kopiujemy plik Configuration.tmpl do pliku Configuration.

W tym pliku znajdują się cztery typy danych:

komentarze: rozpoczynają się od znaku #,
polecenia programu make
moduły: lista modułów, które mają być włączone do kompilacji lub pominięte. Aby włączyć dany moduł do kompilacji należy usunąć znak komentarza (#). Możemy również dodać linie włączające moduły napisane przez nas lub pobrane z sieci.
reguły: pozwalają zaradzić niektórym problemom związanych z konfiguracją. Składnia reguły wygląda następująco: Rule NAZWA=wartość. Jako wartości możemy przyjąć yes - operacja jest wykonywana zgodnie z treścią reguły oraz default - skrypt samodzielnie dobierze najlepsze rozwiązanie.

Plik Configuration umożliwia nam bardzo dokładne skonfigurowanie systemu. W zależności od naszych potrzeb modyfikujemy znaczniki kompilatora, usuwamy znaki komentarza sprzed modułów, które chcemy dołączyć do serwera a stawiamy przed tymi, których nie chcemy.
Po odpowiednim skonfigurowaniu pliku uruchamiamy skrypt konfiguracyjny Configure.
Skrypt ten wygeneruje plik Makefile, który będzie nam potrzebny do kompilacji. Teraz przy pomocy polecenia make, które wymaga zainstalowania w systemie kompilatora języka C i kilka programów użytkowych przeprowadzamy kompilację:
 make 

a następnie instalujemy:
 make install 

Po skończeniu wykonywania instalacji przez polecenie make powstanie plik httpd, za pomocą którego będziemy mogli uruchomić serwer.
Konfigurację możemy również przeprowadzić w linii poleceń:
 ./configure --prefix=PREFIX 
--enable-module=so
--disable-module=so
--add-module=so
PREFIX - ścieżka dostępu gdzie będzie znajdował się katalog Apache. Domyślnie jest to /usr/local/apache i taka też została użyta.

Decydujemy, które moduły zostaną lub nie włączone do serwera:
enable-module - włączenie modułu
disable-module - wyłączenie modułu
add-module - dołączenie naszego modułu

przykład:
 ./configure --prefix=/usr/local/apache 
--enable-module=rewrite
--disable-module=imap
--enable-shared=auth_db
cd apache_1.3.12
./configure --prefix=/usr/local/apache \
--enable-module=expires \
--enable-module=headers \
--enable-module=log_agent \
Wszystkie inne możliwe opcje wykorzystania polecenia Configure możemy odczytać poprzez polecenie: configure -help.

Następnie tak jak poprzednio przeprowadzamy kompilację i instalację:
 make 
make install
Po instalacji w katalogu /usr/local/apache znajdują się między innymi następujące katalogi:

bin - w tym katalogu umieszczane są pliki wykonywalne serwera, wraz z wieloma różnymi narzędziami, takimi jak program htpasswd i apachect1.
cgi - bin - skrypty cgi
conf - pliki konfiguracyjne, czyli: access.conf, httpd.conf i srm.conf oraz plik mime.types zawierający listę typów MIME
htdocs - w tym katalogu umieszczane są dokumenty www, po instalacji znajduje się także manual serwera
icons - zbiór ikon do wykorzystania na stronie
logs - folder, w którym przetrzymujemy pliki z dziennikami zdarzeń tzw. logi
libexec - dodatkowe moduły serwera np: libphp4.so
Przed pierwszym uruchomieniem powinniśmy jeszcze uzupełnić parę niezbędnych dyrektyw w pliku konfiguracyjnym httpd.conf:
 User http 
Group http
ServerName www.bytow.priv.pl
ServerRoot /usr/local/apache
DocumentRoot /home/strona
Serwer możemy uruchamiać na parę sposobów. Jednym z nich jest skrypt apachect1, który znajduje się w katalogu /usr/local/apache/bin
Przechodzimy do tego katalogu i uruchamiamy serwer:
 ./apachect1 start 
Pozostałe parametry: start | stop | restart | fullstatus | graceful |configtest | help

stop - kończy pracę serwera.
restart - wstrzymuje pracę serwera i ponownie go uruchamia.
status - wyświetla skrócone dane o stanie serwera.
fullstatus - wyświetla pełne dane o stanie serwera.
configtest - sprawdza obecną poprawność konfiguracji.
graceful - wymusza bezpieczny restart serwera.
help - wyświetla informacje o opcjach polecenia.
Innym sposobem jest z korzystanie z programu httpd, który pozwala na zmianę domyślnie ustawionych wartości takich jak: lokalizacja plików konfiguracyjnych. Jeżeli chcemy uruchomić konkretną witrynę to używamy httpd z parametrem d:
 httpd -d /home/strona 
Użycie httpd z parametrem d informuje program httpd o położeniu katalogu zawierającego naszą witrynę.

A o to tylko niektóre opcje programu:
-f ścieżka do pliku konfiguracyjnego
-h lista obowiązujących dyrektyw
-s lista serwerów wirtualnych

Pełną listę możliwości wykorzystania programu otrzymamy wydając polecenie: httpd -?
Do zatrzymania pracy serwera możemy skorzystać z powyższego skryptu apachect1 z opcją stop. Generalnie do zatrzymania Apache potrzebujemy numeru identyfikatora PID procesu głównego, który możemy otrzymać poprzez polecenie ps -aux lub przez odczyt z pliku logs/httpd.pid.
Następnie wydajemy polecenie:
 kill numer_procesu 

Zatrzymanie pracy serwera spowoduje przerwanie działania witryn uruchomionych na tym serwerze. Dlatego też lepszym rozwiązaniem może być z restartowanie serwera po dokonanych zmianach w konfiguracji.
 kill -USR1 numer_procesu 

Polecenie to spowoduje ponowne odczytanie plików konfiguracyjnych, pozwalając na zakończenie pracy procesom, które wykonują żądania i zastąpienie ich nowymi procesami.

Po uruchomieniu serwera możemy sprawdzić działanie serwera, za pomocą przeglądarek:

lynx www.bytow.priv.pl - > przy użyciu przeglądarki tekstowej
http://www.bytow.priv.pl - > przy użyciu przeglądarki graficznej
lub z wykorzystaniem programu telnet.
telnet www.bytow.priv.pl 80 Na ekranie jeżeli wszystko jest w porządku pokaże się taki tekst:
 Trying 127.0.0.1... 
Connected to www.bytow.priv.pl
Escape character is '^]'.

GET / HTTP/1.0
Następnie powinna pokazać się nasza strona
 HTTP/1.1 200 OK. 
Date: Sun, 29 Apr 2001 14:06:17 GMT
Server: Apache/1.3.12 (Linux)
Connection: close
Content-Type: text/html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Nieoficjalna strona o Bytowie</title>
</head>
<body>
To jest strona testowa
</body>
</html>
Na zakończenie przedstawię jeszcze istotę działania serwera.


Po uruchomieniu serwer WWW odczytuje swoje pliki konfiguracyjne, a następnie monitoruje określony port (domyślnie jest to port 80) i w razie pojawienia się żądania HTTP odbiera je i podejmuje odpowiednie działanie.

Na początku istnienia serwerów każde żądanie dochodzące do serwera powodowało uruchomienie kopii serwera, która to obsługiwała żądanie, a następnie była zamykana, natomiast proces główny ciągle odbierał nowe żądania i uruchamiał nowe kopie do ich obsługi. Rozwiązanie takie jednak okazało się mało wydajne. Aby zwiększyć wydajność działania serwera zdecydowano się na użycie procesu głównego, który zarządza procesami potomnymi zgłaszającymi do niego informacje o swoim stanie. Jeżeli obciążenie przychodzącymi żądaniami stawało się wyższe natychmiast uruchamiane zostają dodatkowe procesy.
strona 1      Autor: Góra Sławomir
Zobacz również:
Autoryzacja w oparciu o bazę danych   Kartki Internetowe   Java i bazy danych   Komunikacja w ODBC   Komunikat To połączenie jest niezaufane   Flash i Javascript [cz.2]   PHP i Oracle  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
Samsung SGH-E530   LG B2050   Sagem MY-X5   Vodafone 125   Motorola L2   Samsung Serene   Amoi M650   Pantech PG-1600   LG KU990 Viewty   Siemens CXT65  



(C) 2000-2010 webdeveloper.pl  |  Napisz do nas