Jeżeli wykupiłeś niedawno serwer VPS lub masz własny serwer dedykowany, najprawdopodobniej będziesz chciał uruchomić na nim serwer WWW. Jeżeli nie wiesz, w jaki sposób zabrać się do tej operacji, ten artykuł jest dla ciebie.
Coraz częściej potrzeby webmasterów wykraczają poza zwykły hosting (na przykład ze względu na zbyt duży lub zbyt zasobożerny serwis internetowy). W takich przypadkach często sięga się po usługi typu VPS (Virtual Private Server), które pozwalają na hostowanie bardziej wymagających serwisów.
Często jednak dostarczane są one bez usługi administracyjnej lub też standardowa administracja nie spełnia naszych oczekiwań. Wówczas przydaje się wiedza na temat zainstalowania jednej z najbardziej podstawowych usług internetowych, jaką jest serwer HTTP. Okazuje się, że nie jest to wcale takie trudne!
W artykule prezentujemy sposób instalacji serwera Apache – najpopularniejszego serwera HTTP. Sposób instalacji jest opisany na przykładzie dystrybucji Debian Etch. Jednak w podobny sposób program można zainstalować również na innych dystrybucjach Linuksa, zmieniając jedynie metodę pobierania paczek z programem oraz ścieżki do plików konfiguracyjnych.
Wybór modułu MPM
Przed przystąpieniem do instalacji systemu należy wybrać jeden z dwóch standardowych modułów MPM (ang. Multi Processing Modules, co w luźnym tłumaczeniu oznacza moduły zarządzania zapytaniami). Do wyboru masz:
- Prefork – klasyczny MPM, znany jeszcze z Apache w wersji 1.0. Każde zapytanie jest obsługiwane w osobnym procesie. Jest to najmniej wydajny oraz najbardziej zasobożerny MPM, jednak dzięki separacji poszczególnych procesów zapewnia większe bezpieczeństwo.
- Worker – w tym przypadku każde kolejne zapytanie jest uruchamiane w istniejącym już procesie, jako osobny wątek. Architektura oparta na wątkach sprawia, że moduł ten jest zdecydowanie mniej zasobożerny (mniejsze zużycie pamięci), a także bardziej wydajny od prefork (brak narzutu czasowego związanego z uruchomieniem odrębnego procesu).
Jeśli na serwerze będziesz hostować tylko i wyłącznie własne serwisy internetowe, korzystając ze stabilnych wersji oprogramowania, MPM worker wydaje się rozsądnym i bezpiecznym rozwiązaniem. Gdybyś chciał udostępniać konta na serwerze również innym użytkownikom, \”worker\” również będzie dobrą opcją, jednak daje wówczas mniejsze możliwości w zakresie ustawień bezpieczeństwa – o czym należy pamiętać
Instalacja Apache
Aby zainstalować serwer, wykonaj polecenia:
$ apt-get update
$ apt-get install apache2-mpm-worker
Powyższe polecenie zainstaluje Apache w wersji z modułem MPM Worker. Gdybyś chciał skorzystać z Preforka, zamiast powyższego wpisz:
$ apt-get install apache2-mpm-prefork
System pobierze odpowiednie pliki (zostaniesz poproszony o potwierdzenie), po czym je zainstaluje. Na koniec tego procesu będziesz mieć gotowy, działający serwer WWW. Ale to jeszcze nie koniec – teraz jest czas na rozpoczęcie konfiguracji.
Przygotowanie do pracy
Dla pełnego zrozumienia sposobu konfiguracji serwera Apache konieczne jest zapoznanie się z zasadą działania tzw. \”vhostów\”, zwanych też \”wirtualkami\”. Są to specjalne wpisy w konfiguracji Apache, które odpowiadają za obsługę konkretnej domeny lub grupy domen.
Jak to działa? Specyfikacja HTTP/1.1 pozwala na jednym adresie IP uruchamiać dowolną ilość serwisów dla różnych domen. I choć serwer będzie nasłuchiwać na wskazanym IP, to informacje o tym jaki serwis wyświetlić, są zależne właśnie od vhostów. Dla każdego serwisu będziesz więc potrzebować odrębnego vhosta.
W Debianie vhosty zostały wydzielone do katalogu {stala}/etc/apache2/sites-available/{/stala}. Przejdź do tego katalogu. Aktualnie znajduje się tam tylko plik default. Jest on odpowiedzialny za wyświetlenie strony domyślnej, w sytuacji gdy domena, którą internauta wpisał do przeglądarki, a która kieruje na adres IP serwera, nie ma przyporządkowanej konkretnej virtualki. Z pliku konfiguracyjnego dowiesz się, że pliki strony są zlokalizowane w katalogu {stala}/var/www/{/stala}, przy czym od razu po wejściu na stronę następuje przekierowanie do lokalizacji odpowiadającej folderowi {stala}/var/www/apache2-default/{/stala}.
Jeśli zamierzasz uruchomić tylko jeden serwis internetowy, to możesz w tym miejscu zakończyć konfigurację. Wystarczy, że umieścisz swoją stronę właśnie w katalogu {stala}/var/www/{/stala}. Następnie wyedytuj {stala}/etc/apache2/sites-available/default{/stala} i usuń w nim linię:
RedirectMatch ^/$ apache2-default/
Zmiany będą widoczne po przeładowaniu konfiguracji serwera apache2:
/etc/init.d/apache2 reload
Jeśli jednak chciałbyś uruchomić kolejny serwis, oprócz domyślnego, konieczne będzie utworzenie nowego vhosta. Najlepiej wzoruj się na pliku default, kopiując go:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/twojastrona.pl
Dobrą praktyką jest nazywanie plików konfiguracji zgodnie z nazwami domen, których dotyczą – tak jak w przykładzie. W zawartości nowego pliku zmień kilka linijek, tak aby wyglądały następująco:
NameVirtualHost *
ServerName twojastrona.pl
ServerAlias www.twojastrona.pl
ServerAdmin webmaster@twojastrona.pl
DocumentRoot /var/www/twojastrona.pl/
[...]
Ponadto usuń (jeśli nie zrobiłeś tego wcześniej) linię:
RedirectMatch ^/$ apache2-default/
Aby nowy vhost był widoczny, należy go jeszcze uaktywnić poprzez utworzenie dowiązania symbolicznego w katalogu {stala}/etc/apache2/sites-enabled/{/stala}:
ln -s /etc/apache2/sites-available/twojastrona.pl /etc/apache2/sites-enabled/005-twojastrona.pl
Liczba \”005\” na początku pozwala sterować priorytetami, gdyby różne pliki konfiguracyjne wzajemnie się nadpisywały.
Na koniec przeładuj serwer apache2:
/etc/init.d/apache2 reload
Nowa strona powinna już działać!
Przenieś strony do katalogu domowego
W konfiguracji nowego vhosta warto dokonać jeszcze jednej modyfikacji. Ponieważ plikami stron internetowych łatwiej zarządzać ze swojego katalogu domowego (np. posiadając tam bezpośredni dostęp przez FTP), możesz chcieć zamienić wystąpienia {stala}/var/www/{/stala} na swój katalog domowy (np. {stala}/home/uzytkownik/twojastrona.pl/{/stala} ) i przenieść stronę w to miejsce.
Jeśli ponadto chciałbyś w katalogach ze stroną mieć możliwość wpływania na ustawienia serwera poprzez plik .htaccess, zmień linię z dyrektywą AllowOverride z \”None\” na \”All\”:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Zmiany tej dokonaj tylko w obrębie katalogu (sekcja Directory), w którym posiadasz stronę. Pozostaw w stanie oryginalnym ustawienia dla katalogu głównego (\”/\”) – to zwiększy bezpieczeństwo.
I to wszystko! Gratulujemy, masz już skonfigurowany serwer Apache z podstawowymi ustawieniami. Za tydzień dowiesz się między innymi, w jaki sposób doinstalować do niego obsługę PHP.