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 MPMInclude etc/apache22/extra/httpd-autoindex.conf
– Będziemy mieli generowany index plików w przypadku braku plikuindex.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:
<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 plikuużytkownik-DavLock
DocumentRoot ”/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 pozaDocumentRoot
AuthDigestProvider 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
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 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)
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.