Wchodzimy do katalogu /usr/ports/www/apache22 i wydajemy polecenie:
# make install clean WITH_MPM=itk
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_apacheInclude etc/apache22/extra/httpd-mpm.conf – Podstawowa konfiguracja MPMInclude etc/apache22/extra/httpd-autoindex.conf – Będziemy mieli generowany index plików w przypadku braku pliku index.htmlInclude etc/apache22/extra/httpd-vhosts.conf – Obsługa 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:
<VirtualHost *:80>
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
</VirtualHost>
Następnie można dodawać już wirtualne hosty z obsługą WebDAV:
<VirtualHost *:80>
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
<Directory "/usr/local/www/apache22/data/user.dav">
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
</Directory>
<Directory "/home/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
</Directory>
</VirtualHost>
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-DavLockDocumentRoot ”/usr/local/www/apache22/data/user.dav” – będzie to wirtualny katalog w którym będziemy udostępniać zasoby poprzez WebDAVAlias /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 domowegoAuthType 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ć dowolnaAuthUserFile ”/usr/local/www/apache22/passwords/davuser.passwd” – Plik z użytkownikami i hasłami do autoryzacji. Zalecane jest przetrzymywanie tego pliku poza DocumentRootAuthDigestProvider file – „dostawca” autoryzacji. W tym przypadku plik. „file” jest parametrem a nie nazwą którą należy zmienić na nazwę plikuCharsetSourceEnc 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
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 5003) user.dav
# cd user.dav
# mkdir home4)
# 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 user5)
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.