====== Instalacja z MPM itk + WebDAV ====== == 1. Instalacja z portów == Wchodzimy do katalogu ''/usr/ports/www/apache22'' i wydajemy polecenie: \\ \\ '' # **make install clean WITH_MPM=itk** \\ '' == 2. Konfiguracja Apache == Główny plik konfiguracyjny znajduje się w katalogu ''/usr/local/etc/apache22'' i nazywa się ''httpd.conf''. Dodatkowe pliki konfiguracji znajdują się w katalogu ''/usr/local/etc/apache22/extra'' o których będzie później. W pliku ''httpd.conf'' zmieniamy: \\ * ''Listen 80'' -- Powoduje słuchanie na wszystkich interfejsach na porcie 80. * ''ServerAdmin'' //adres_osoby_odpowiedzialnej_za_serwer_apache// * Odkomentujemy następujące linie: * ''Include etc/apache22/extra/httpd-mpm.conf'' -- Podstawowa konfiguracja MPM * ''Include etc/apache22/extra/httpd-autoindex.conf'' -- Będziemy mieli generowany index plików w przypadku braku pliku ''index.html'' * ''Include etc/apache22/extra/httpd-vhosts.conf'' -- Obsługa wirtualnych hostów == 2.1 Konfiguracja wirtualnych hostów == Będziemy edytować plik ''/usr/local/etc/apache22/extra/httpd-vhosts.conf'': \\ * ''NameVirtualHost *:80'' -- Powoduje przekierowanie **wszystkich odwołań do serwera na wirtualne hosty** Dodatkowo utworzymy domyślny host wirtualny, jeśli żaden inny nie zostanie znaleziony po domenie: \\ \\ ServerAdmin root@domena.com.pl DocumentRoot "/usr/local/www/apache22/data/default" ServerName *.domena.com.pl ErrorLog "/var/log/all-httpd-error_log" CustomLog "/var/log/all-httpd-access_log" common Następnie można dodawać już wirtualne hosty z obsługą WebDAV: \\ \\ ServerAdmin root@domena.com.pl ServerName user.domena.com.pl ErrorLog "/var/log/user.domena.com.pl-error_log" CustomLog "/var/log/user.domena.com.pl-access_log" common DocumentRoot "/usr/local/www/apache22/data/user.dav" DavLockDB "/tmp/user-DavLock" Alias /webdav "/usr/local/www/apache22/data/user.dav" Alias /home "/home/user" AssignUserId user user Dav On Order Allow,Deny Allow from all AuthType Digest AuthName DAV-upload AuthUserFile "/usr/local/www/apache22/passwords/davuser.passwd" AuthDigestProvider file CharsetSourceEnc UTF-8 CharsetDefault UTF-8 Dav On Order Allow,Deny Allow from all AuthType Digest AuthName DAV-upload AuthUserFile "/usr/local/www/apache22/passwords/davuser.passwd" AuthDigestProvider file CharsetSourceEnc UTF-8 CharsetDefault UTF-8 Kilka słów wyjaśnień do powyższego wpisu: * ''DavLockDB ”/tmp/user-DavLock”'' -- tworzymy Lock dla każdego z użytkownika z osobna, najlepiej przyjąć regułę nazwy pliku ''użytkownik-DavLock'' * ''DocumentRoot ”/usr/local/www/apache22/data/user.dav”'' -- będzie to wirtualny katalog w którym będziemy udostępniać zasoby poprzez WebDAV * ''Alias /webdav ”/usr/local/www/apache22/data/user.dav”'' -- alias wymagany przez niektóre klienty WebDAV (dodane w celu kompatybilności) * ''Alias /home ”/home/user”'' -- alias kierujący użytkownika do jego katalogu domowego * ''AssignUserId user((nazwa użytkownika)) user((grupa użytkownika))'' -- zmiana użytkownika z jakim będzie działał Apache - wykorzystujemy do tego celu MPM ''itk'' * ''AuthType Digest'' -- typ autoryzacji. Digest jest wystarczająco bezpieczną metodą w przypadku dostępu HTTP (bez "S"). Należy zwrócić uwagę, że nie wszystkie klienty obsługują ten typ (np. lftp nie obsługuje..). Alternatywą jest dostęp do WebDAV poprzez HTTPS i autoryzacja Plain. * ''AuthName DAV-upload'' -- nazwa do okienka autoryzacyjnego - może być dowolna * ''AuthUserFile ”/usr/local/www/apache22/passwords/davuser.passwd”'' -- Plik z użytkownikami i hasłami do autoryzacji. **Zalecane jest przetrzymywanie tego pliku poza ''DocumentRoot''** * ''AuthDigestProvider file'' -- "dostawca" autoryzacji. W tym przypadku plik. ''"file"'' jest parametrem a nie nazwą którą należy zmienić na nazwę pliku * ''CharsetSourceEnc UTF-8'' -- kodowanie jakie mamy na systemie plików. Jeśli inne niż UTF-8, należy ten wpis zmienić * ''CharsetDefault UTF-8'' -- kodowanie jakie będzie wysyłane do klienta == 3. Dodawanie użytkowników == Przechodzimy do katalogu ''/usr/local/www/apache22'' i tworzymy nowy: \\ \\ ''# **mkdir passwords**'' Przechodzimy do nowego katalogu. Na początek należy stworzyć nowy plik autoryzacji (dodając przy tym pierwszego użytkownika): \\ \\ '' # **htdigest -c davuser.passwd DAV-upload user** \\ Adding password for user in realm DAV-upload. \\ New password: \\ Re-type new password: \\ '' Każdego kolejnego użytkownika dodajemy już bez parametru ''-c''. Kolejnym krokiem będzie stworzenie katalogu użytkownika oraz dodanie pliku ''.htaccess'': \\ \\ '' # **cd /usr/local/www/apache22/data** \\ # **mkdir user.dav** \\ # **chown user:user user.dav** \\ # **chmod 500((zabronimy w ten sposób modyfikacji plików w drzewie głównym)) user.dav** \\ # **cd user.dav** \\ # **mkdir home((ten katalog będzie pusty, konieczny jest jednak dla celów aliasu))** \\ # **chown user:user home** \\ '' Przykładowy plik ''.htaccess'': \\ \\ '' AuthType Digest \\ AuthName DAV-upload \\ AuthUserFile "/usr/local/www/apache22/passwords/davuser.passwd" \\ AuthDigestProvider file \\ Require user user((tu wpisz nazwę użytkownika)) \\ '' == 4. Uruchamianie serwera Apache == Dodajemy do pliku ''/etc/rc.conf.local'' linię: apache22_enable="YES" Po czym uruchamiamy serwer:\\ \\ '' # **/usr/local/etc/rc.d/apache22 start** \\ Performing sanity check on apache22 configuration: \\ Syntax OK \\ Starting apache22. ''\\