Apache w Slackware


Opisze tutaj moje doświadczenia związane z zainstalowaniem i późniejszą konfiguracją serwera HTTP w wersji 1.x na komputerze z zainstalowanym systemem Slackware 8.1. Na płytach instalacyjnych jest apache, php, ssh, ssl, cgi, mysql i inne moduły wystarczające do typowych zastosowań. W moim przypadku chciałem mieć oprócz ogólnodostępnych stron, strony z autoryzacją na login i na hasło. Aby to zrealizować utworzyłem użytkownika www o grupie ftp oraz użytkownika http o grupie ftp. Zrobiłem to dlatego, aby można było programem Proftp wrzucać pliki do katalogu ogólnodostępnego (/home/www) i na hasło (/home/http). Przy tworzeniu tych kont ustawiłem dla nich hasła systemowe, które będa potrzebne przy łączeniu się za pomoca ftp. Po wykonaniu tych czynności edytowałem plik konfiguracyjny apache o nazwie /etc/apache/httpd.conf. Ze względu na czytelność zamieściłem tylko zmiany i rzeczy nowe:

ServerAdmin asperczwielun@poczta.onet.pl

DocumentRoot "/home/www"

Alias /http/ "/home/http/"
    <Directory "/home/http">
        AllowOverride All
	Order allow,deny
        Allow from all
   </Directory>

Include /etc/apache/mod_php.conf
#Include /etc/apache/mod_ssl.conf

DirectoryIndex index.php index.html

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

Aby można się było zalogować do katalogu /home/http musiałem wygenerować plik /etc/apache/.htaccess za pomoca polecenia:

htpasswd -c /etc/apache/.htaccess andrzej

Przy czym andrzej to osoba, dla której program wygenerował hasło. Znaczy to, że po podaniu loginu andrzej i właściwego hasła można wejść na stronę. Proszę nie mylić tego hasła z hasłami użytkowników linuksa. Dla uproszczenia można utworzyć te same hasła dla apache co są dla systemu. Ułatwi to znacząco prace, bo system, apache i ftp będą miały te same hasła. Jeżeli tych osób ma być więcej to piszemy analogiczne polecenia opuszczając opcję -c. Dodatkowo w katalogu /etc/apache musimy utworzyć plik .group i wpisać do niego osoby, które mogą sie logować. Dla przykładu w grupie swoi są:
swoi: andrzej maciek ania gosia

W katalogu udostepnianym (http) musimy utworzyć plik o nazwie .htaccess, w którym są zawarte nastepujące wpisy:

AuthName "Katalog na hasło"
AuthType basic
AuthUserFile /etc/apache/.htaccess
AuthGroupFile /etc/apache/.group
require valid-user
require group swoi

Po wykonaniu tych czynności wystarczy zrestartowac serwer poleceniem /etc/rc.d/rc.httpd restart. Sprawdzenie, czy server właściwie pracuje polega na wpisaniu w pole adresu nastepujacych wpisów (wpisz swój adres):

http://80.80.80.80/ - bez logowania
http://80.80.80.80/http/ - na hasło
http://80.80.80.80/cgi-bin/test-cgi - test cgi
http://80.80.80.80/manual/ - dokumentacja apache


Przy drugim poleceniu zostaniemy poproszeni o login (andrzej) i hasło (hasło wygenerowane powyżej). Opisana metoda logowania się jest prosta i ma wadę w postaci przesyłania niekodowanego hasła. Są też inne metody bardziej zaawansowane i zainteresowanych odsyłam do dokumentacji i opisów w internecie. DirectoryIndex index.php index.html mówi nam o kolejności czytania plików w katalogu ftp i http, a poniższy wpis zabezpiecza plik .htaccess w katalogu http przed przeczytaniem podczas wizyty na stronie.

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>


Te informacje wystarczą do uruchomienia własnego serwera WWW, ale zachęcam do skorzystania z dokumentacji i z opisów. Serwer został tak skonfigurowany, aby pracować razem z serwerem Proftp w internecie i sieci szkolnej (większa ilość użytkowników).

do góry 2002.06.03