Ćwiczenie 6
Administracja
sieciami LAN
Laboratorium 5ED - sem.
9
Materiały
pomocnicze
Temat ćwiczenia:
Instalacja i konfiguracja serwera WWW.
Instalacja serwera Apache2
1. Należy zainstalować pakiet apache2:
root@debian# aptitude install apache2
2. Sprawdzenie, czy program Apache jest uruchomiony:
root@debian# ps aux |grep apache
root 18876 0.0 0.7 14556 2560 ? SNs Jan01 0:00 /usr/sbin/apache2
-k start -DSSL
www-data 18969 0.0 0.8 14808 2808 ? SN Jan01 0:00 /usr/sbin/apache2
-k start -DSSL
www-data 27220 0.0 0.8 14676 2796 ? SN Jan01 0:00 /usr/sbin/apache2
-k start -DSSL
root 4933 0.0 0.2 1928 720 pts/0 S+ 17:48 0:00 grep apache
Poprawność działania serwera Apache można sprawdzić w dowolnej przeglądarce WWW
wpisując adres:
3. Pliki konfiguracyjne programu Apache znajdują się w katalogu /etc/apache2.
Najważniejsze pliki i katalogi:
/etc/apache2/apache2.conf – główny plik konfiguracyjny
/etc/apache2/mods-available/ – katalog informujący o dostępnych, zainstalowanych lecz nie
aktywowanych modułach rozszerzających działanie serwera Apache2. Przechowywana tu jest lista
plików .load i .conf. Pliki .load pozwalają załadować dany moduł, pliki .conf zawierają dodatkową
konfigurację danego modułu.
/etc/apache2/mods-enabled/ – katalog zawiera pliki .load i .conf aktywnych dodatkowych
modułów serwera Apache2.
/etc/apache2/sites-available/ – katalog z konfiguracją serwisów obsługiwanych przez
serwer (tzw. virtualhostów). Katalog ten zawiera listę wszystkich serwisów, niekoniecznie aktywnych w
danym momencie. Domyślnie istnieje tylko jeden wpis “default”.
/etc/apache2/sites-enabled/ – katalog zawierający listę aktywnych konfiguracji
virtualhostów. Domyślnei włączony virtualhost “default” pokazujący stronę testową.
Instalacja PHP4
1. Instalacja wsparcia php4 dla serwera Apache2. Należy zainstalować pakiet: libapache2-mod-
php4
root@debian# aptitude install libapache2-mod-php4
2. Sprawdzenie, czy w katalogu /etc/apache2/mods-available/ znajdują się wpisy dotyczące
modułu php4.
root@debian# ls -l /etc/apache2/mods-available/ |grep php4
-rw-r--r-- 1 root root 133 2005-08-30 20:34 php4.conf
-rw-r--r-- 1 root root 59 2005-08-25 05:25 php4.load
3. Sprawdzenie, czy moduł php4 został dopisany do aktywnych modułów:
root@debian# ls -l /etc/apache2/mods-enabled/ |grep php4
lrwxrwxrwx 1 root root 37 2005-08-30 20:03 php4.conf -> /etc/apache2/mods-
available/php4.conf
lrwxrwxrwx 1 root root 37 2005-08-30 20:03 php4.load -> /etc/apache2/mods-
available/php4.load
4. Sprawdzenie poprawności działania serwera Apache2 ze wsparciem dla PHP4:
Należy przygotować testową stronę WWW o nazwie phpinfo.php i zawartości:
<?
phpinfo();
?>
Plik ten należy wgrać do głównego katalogu domyślnego virtualhosta. Katalog główny
zdefiniowany jest dyrektywą DocumentRoot w pliku konfiguracyjnym danego virtualhosta.
Po wgraniu pliku, należy w przeglądarce WWW wywołać adres
http://debian.prz.edu.pl/phpinfo.php
. W przypadku prawidłowego działania rozszerzenia php4, wyświetli
się konfiguracja modułu.
Konfiguracja wirtualnych hostów
wskazują tą samą, domyślna stronę.
Cel:
Skonfigurować serwer Apache tak, aby po wywołaniu adresu
konfiguracja modułu PHP.
1. W katalogu /etc/apache2/sites-available zapisać plik o nazwie php z konfiguracją
virtualhosta:
<VirtualHost *>
ServerAdmin webmaster@debian.prz.edu.pl
ServerName php.debian.prz.edu.pl
DocumentRoot /var/www/php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/php>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error-php.log
LogLevel warn
CustomLog /var/log/apache2/access-log.log combined
ServerSignature On
</VirtualHost>
2. W katalogu /etc/apache2/sites-enabled utworzyć symboliczny link do pliku z konfiguracją
virtualhosta php:
root@debian# ln -s /etc/apache2/sites-available/php \
/etc/apache2/sites-enabled/001-php
3. Utworzyć katalog /var/www/php. Skopiować do niego plik phpinfo.php.
4. Przeładować konfigurację serwera WWW:
root@debian# /etc/init.d/apache2 reload
. W przeglądarce WWW powinna pojawić się
zawartość katalogu /var/www/php. Po kliknięciu na plik phpinfo.php, zostanie odczytana
konfiguracja modułu PHP.
6. Aby plik phpinfo.php był domyślnie wczytywany po podaniu adresu
należy w konfiguracji virtualhosta dodać dyrektywę:
DirectoryIndex phpinfo.php
Dodanie wsparcia dla baz danych do modułu PHP
1. Aby dodać wsparcie bazy danych MySQL do PHP4, należy doinstalować moduł php4: php4-mysql
root@debian# aptitude install php4-mysql
Zainstalowany zostanie moduł php oraz niezbędne biblioteki. Sam serwer bazodanowy należy
zainstalować oddzielnie (na tym samym komputerze lub na oddzielnej, dedykowanej jednostce).
Aby moduł php4-mysql stał się aktywny, należy odświeżyć konfigurację serwera Apache:
root@debian# /etc/init.d/apache2 reload
Jeżeli obsługa bazy danych MySQL w PHP została zaimplementowana poprawnie, powinno to
być widoczne po wywołaniu pliku phpinfo.php:
2. Aby dodać wsparcie bazy danych PostgreSQL do PHP4, należy doinstalować moduł php4: php4-
pgsql
root@debian# aptitude install php4-pgsql
Zainstalowany zostanie moduł php oraz niezbędne biblioteki. Sam serwer bazodanowy należy
zainstalować oddzielnie (na tym samym komputerze lub na oddzielnej, dedykowanej jednostce).
Aby moduł php4-pgsql stał się aktywny, należy odświeżyć konfigurację serwera Apache:
root@debian# /etc/init.d/apache2 reload
Jeżeli obsługa bazy danych PostgreSQL w PHP została zaimplementowana poprawnie, powinno
to być widoczne po wywołaniu pliku phpinfo.php:
Obsługa połączeń szyfrowanych SSL
1. Należy włączyć obsługę modułu SSL, tworząc odpowiednie dowiązania symboliczne w katalogu
/etc/apache2/mods-enabled:
root@debian# ln -s /etc/apache2/mods-available/ssl.load \
/etc/apache2/mods-enabled/ssl.load
root@debian# ln -s /etc/apache2/mods-available/ssl.conf \
/etc/apache2/mods-enabled/ssl.conf
2. Należy włączyć nasłuch serwera WWW na porcie 443 (port połączeń szyfrowanych SSL). W tym celu
należy w pliku /etc/apache2/ports.conf dopisać
Listen 443
3. W katalogu /etc/apache2/sites-available należy przygotować konfigurację virtualhosta
obsłgującego połączenia szyfrowane SSL. W tym przypadku konfiguracja będzie znajdować się w pliku
php-ssl:
<IfDefine SSL>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName php.debian.prz.edu.pl:443
ServerAdmin webmaster@debian.prz.edu.pl
DirectoryIndex phpinfo.php
DocumentRoot /var/www/php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/php>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error-php.log
LogLevel warn
CustomLog /var/log/apache2/access-log.log combined
ServerSignature On
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/newkey.pem
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
</VirtualHost>
</IfDefine>
4. Dołączyć konfigurację virtualhosta do listy aktywnych, znajdujących się w katalogu
/etc/apache2/sites-enabled:
root@debian# ln -s /etc/apache2/sites-available/php-ssl \
/etc/apache2/sites-enabled/002-php-ssl
5. Do katalogu /etc/apache2/ssl wgrać certyfikat dla serwera WWW (apache.pem) oraz klucz
(newkey.pem).
6. Zrestartować serwer WWW:
root@debian# /etc/init.d/apache2 restart
7. Działanie połączeń szyfrowanych można sprawdzić wywołując w przeglądarce WWW adres:
Opracował:
Krzysztof Raczkowski