====== 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. ''\\