Narzędzia użytkownika

Narzędzia witryny


freebsd:ports:apache

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:

<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-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 user1) user2) – 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 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.

1)
nazwa użytkownika
2)
grupa użytkownika
3)
zabronimy w ten sposób modyfikacji plików w drzewie głównym
4)
ten katalog będzie pusty, konieczny jest jednak dla celów aliasu
5)
tu wpisz nazwę użytkownika
freebsd/ports/apache.txt · ostatnio zmienione: 2010/01/04 04:48 przez 127.0.0.1