Elementy konfiguracji Apache2

Uwagi wstępne

Wszystkie ćwiczenia na tym laboratorium zostały przygotowane na platformie Debian/GNU Linux, wersja „etch”. Jest ona zdaniem wielu jedną z najlepszych developerskich platform linuksowych. Jeżeli chodzi o pracę z Apache dostarcza ona oprogramowania serwera w wersji 1.3 i 2.4, a także szeregu pakietów rozszerzających funkcjonalność serwera i wspomagających pracę z nim, w tym OpenSSL i PHP.

Jako przeglądarki na laboratorium należy używać wyłącznie Mozilla Firefox. Udostępnia ona szereg niezwykle przydatnych rozszerzeń.

W ramach tego laboratorium wykorzystywane mogą być między innymi (opis na http://update.mozilla.org):

Rzecz jasna wszystkie ćwiczenia można wykonywać na dowolnej platformie unixowej, z tym jednak, że nie wszystkie (np. nie wszystkie dystrybucje GNU/Linuxa) dostarczają w.w. narzędzi od razu w dystrybucji.

Plan laboratorium

W ramach laboratorium należy poznać i swoje środowisko pracy, a następnie wykonywać ćwiczenia, posługując się podanymi wskazówkami.

Środowisko pracy

Katalogi

  • W czasie ćwiczeń przy rozpakowywaniu archiwum zostanie założony w katalogu domowym katalog aph
  • W tym katalogu należy przechowywać wszystkie pliki z laboratorium.

Edycja

Do wyboru jest kilka edytorów:

  • Osoby znające GNU Emacs mogą w nim pracować.
  • Polecanym edytorem jest BlueFish (UWAGA: należy się upewnić, że domyślne kodowanie plików to ISO-8859-2 (Edycja/Ustawienia/Pliki, Dokument/Kodowanie_Znaków).
  • Można też ew. pracować w prostym edytorze tekstowym konsolowym, np. vi, nano, mcedit, joe.
  • W 1. oknie należy uruchomić edytor, będzie przydatny w edycji plików konfiguracyjnych.
  • W 2. oknie należy uruchamiać skrypty związane z zarządzaniem serwerem.

Poza w.w. należy otworzyć dodatkowe okno terminala, z katalogiem bieżącym ustawionym na ~/aph. Będzie ono pomocne przy monitorowaniu pracy serwera i innych.

Przeglądarka

Należy wykorzystywać Mozilla Firefox, będzie ona używana do bieżącego obserwowania pracy serwera.

Tematy

W czasie ćwiczeń realizowanych jest kilka tematów. W zależności od swoich potrzeb (tylko używanie, używanie i administrowanie) można się zdecydować na pominięcie/wybranie niektórych. W czasie ćwiczeń należy wykorzystywać podane szablony plików konfiguracyjnych Apache.

Ćwiczenia podstawowe:

  1. Stworzenie własnej strony w ramach istniejącej instalacji Apache.
  2. Zarządzanie dostępem do stron udostępnianych przez Apache.

Ćwiczenia zaawansowane:

  1. Skonfigurowanie własnej instancji Apache w przestrzeni użytkownika.
  2. Dodatkowe moduły Apache.

Ćwiczenia

Ćwiczenie należy wykonywać na serwerze borg.

Własne WWW (podstawowe)

Założenie strony

Tzw. „strona domowa” użytkownika udostępniana jako serwer/~konto jest podkatalogiem w katalogu domowym użytkownika. Ten podkatalog (dyrektywa UserDir) domyślnie nazywa się public_html.

Po podaniu adresu strony wyświetlany jest dokument indeksujący w w.w. katalogu, którego domyślna nazwa to najczęściej index.html (dyrektywa DirectoryIndex).

Zawartość tego pliku jest wyświetlana przez serwer WWW. Serwer pracuje jako proces w systemie. Ma uprawnienia, związane z własnym użytkownikiem systemowym. Aby mógł mieć dostęp do plików w katalogu domowym użytkowania, katalog ten (wraz z zawartością) musi mieć odpowiednie prawa dostępu.

O ile wcześniej była zakładana strona, to najlepiej zachować ją pod nową nazwą, np.:

mv ~/public_html ~/public_html-old

W celu założenia swojej strony domowej należy wykonać polecenia:

cd ; mkdir public_html 
echo "<html><head><title>Strona $USER</title></head><body> <p>Moja strona</p></body></html>" > public_html/index.html 
chmod o+x ~ ; chmod -R o+rx ~/public_html

Testowanie

O ile wszystko zostało wykonane poprawnie, podanie w przeglądarce adresu borg.kis.agh.edu.pl/~user powinno wyświetlić stworzony powyżej plik HTML.

Użycie PHP

O ile serwer na którym założona jest strona udostępnia PHP (tak jak borg) można przetestować jego obsługę. Proszę zmodyfikować powyższy plik następująco:

<html><head> <title>Strona $USER</title> </head><body> 
<p>Moja strona</p> 
<p>To jest <a href="test.php">test PHP</a></p> 
</body></html>

A następnie założyć w.w. plik:

  cd ~/public_html 
  echo "<?php phpinfo(); ?>" > test.php 
  chmod a+r test.php

Nagłówki HTTP

Można śledzić transmisję HTTP przy pomocy rozszerzenia Firefoxa o nazwie LiveHTTPHeaders. W tym celu należy uruchomić z menu Tools/Live HTTP headers (pl. narzędzia), pojawi się nowe okno, następnie w oknie przeglądarki należy podać adres www (np. własnej strony) i obserwować w oknie rozszerzenia opis przebiegu transmisji HTTP.

Zarządzanie dostępem (podstawowe)

  • W katalogu public_html założyć katalog restricted
  • W nim plik .htaccess regulujący dostęp do zawartości, o treści:
    AuthName "Dostep Zastrzezony!"
    AuthType Basic
    AuthUserFile /home/tu-wpisac-sciezke/moj_plik_z_haslami
    require valid-user
  • Założyć przez htpasswd w.w. plik z hasłami, z jednym kontem, np.:
    htpasswd -c moj_plik_z_haslami nowekonto
  • W pliku .htaccess należy wpisać pełną ścieżkę dostępu do powyższego pliku, t.j. moj_plik_z_haslami.
  • W w.w. katalogu założyć prosty dokument indeksujący, np. kopiując poprzedni index.html i zmieniając tytuł strony.
  • Sprawdzić prawa dostępu do plików i dokumentu (a+rx).

W przypadku konfigurowania własnej instancji Apache założyć katalogi o ograniczonym dostępie dla różnych list użytkowników. (oglądnąć przykład katalogu restricted), uwaga, do działania w danym katalogu potrzebny jest odpowiedni wpis w dyrektywie directory

Własna instancja Apache (zaawansowane)

Uruchamianie

  • Skopiować aph.tar.gz do katalogu domowego na borgu
  • Rozpakować archiwum:
    cd ; tar xvzf labaph_08-2.tar.gz
  • Przejść do katalogu ~/aph
  • Zmodyfikować plik konfiguracyjny ~/aph/etc/apache2.conf, wstawiając własny katalog domowy i inne parametry (użytkownika, grupę itp., to wymaga nieco pomysłowości i oparcia się na dostarczonym szablonie, proszę szukać słów kluczowych FIXME). Powinno wystarczyć dopisanie przed odpowiednimi ścieżkami, ścieżki dostępu do aph w swoim katalogu domowym, np.: /home/staff/kk/aph/
  • Zmodyfikować plik konfiguracyjny wirtualnego hosta ~/aph/etc/sites-enabled/default, wstawiając własny katalog domowy w miejsce FIXME.
  • Istotne jest podanie: numeru portu (1080+N) (numery będą przydzielone na zajęciach!), w pliku ports.conf
  • Uruchomić (podaje opis opcji)

/usr/sbin/apache2 -h

  • Wypróbować działanie opcji -V -v -L -l.
  • Przetestować konfigurację:

/usr/sbin/apache2 -e debug -d ${HOME}/aph/etc -f ${HOME}/aph/etc/apache2.conf -t

  • Uruchomić serwer:

/usr/sbin/apache2 -d ${HOME}/aph/etc -f ${HOME}/aph/etc/apache2.conf

  • Sprawdzić działanie w przeglądarce, podając adres borg.kis.agh.edu.pl:port gdzie port jest numerem portu 1080+N
  • Zmodyfikować plik ~/aph/var/www/index.html dopisując do niego coś ciekawego, np. swoje imię. Przeładować powyższą stronę.
  • W oknie przeglądarki proszę otworzyć Apache Manual
  • W przypadku zmiany jakiegokolwiek pliku konfiguracyjnego, należy o tym poinformować Apache2 przez:

kill -HUP `cat ~/aph/var/run/ap*.pid`

  • Serwer zatrzymuje się przez:

kill `cat ~/aph/var/run/ap*.pid`

Konfigurowanie

  1. Zmodyfikować domyślną stronę www własnego serwera.
  2. Dodać nowy katalog z dokumentami
  3. Zdefiniować alias do w.w., np. katalog ~/aph/var/www-inny i alias cos.
  4. Zmodyfikować komunikaty o błędach serwera, w tym spróbować założyć dla wybranego komunikatu oddzielną stronę z informacja o błędzie.
  5. Przyglądnąć się nagłówkom HTTP wysyłanym przez serwer (przez plugin w Firefoxie) - jak ograniczyć informacje które wysyła Apache2?

Monitorowanie

  1. Czy w odpowiednich plikach rejestrowych w katalogu ~/aph/var/log są gromadzone informacje o pracy serwera (tail -f access.log)? Jeżeli nie, należy odpowiednio zmodyfikować konfigurację.
  2. Pliki oglądać w osobnych okienkach przez tail -f ~/aph/var/log/access.log ;tail -f ~/aph/var/log/error.log

Uruchamianie PHP

W celu uruchomienia obsługi PHP należy uruchomić:

cd etc/mods-enabled
ln -s ../mods-available/php5.load
ln -s ../mods-available/php5.conf
  • Ponownie uruchomić serwer i przetestować działanie PHP tak jak w ćwiczeniu ze stroną domową (PHP), w razie problemów śledzić komunikaty o błędach serwera.
  • Proszę zwrócić uwagę na informacje wyświetlane przez funkcję phpinfo(), szczególnie na części związane z Apache!
  • Domyślnie PHP będzie czytało swoje pliki konfiguracyjne z /etc, co jest możliwe jeżeli są odpowiednie prawa dostępu.
  • Jak zmieniają się nagłówki HTTP wysyłane przez serwer?

Optymalizacja

  1. Proszę zmodyfikować liczbę uruchamianych instancji serwera (StartServers).
  2. Wprowadzić własne formaty plików rejestrowych (CustomLog)
elementy_konfiguracji_apache2.txt · ostatnio zmienione: 2016/06/04 08:33 przez krzysiek