CONTENT
  • CHANGES
Szukaj
counter

#top Instalacja


Instalację serwera thttpd można wykonać na różne sposoby: od kompilacji ze źdródeł poprzez instalację pojedynczych paczek rpm za pomocą polecenia rpm skończywszy na instalacja z użyciem menedżera pakietów, który zainstaluje wszystkie niezbędne paczki wraz zależnościami.
Celem niniejszego dokumentu nie jest rozważanie różnych metod instalacji tylko nieco usprawnienie użyteczności konfiguracji serwera thttpd po zainstalowaniu oraz wprowadzenie porządku / hierarchi położenia plików z których korzysta usługa w strukturze katalogowej.
Zgodnie definicją FHS (en.wiki, pl.wiki): katalog /srv zawiera: Data for services provided by this system toteż jako katalog w którym thttpd będzie przechowywał dane został wybrany: /srv/http i zostanie on utworzony z odpowiednimi atrybutami wraz ze stosownymi podkatalogami:
/srv/thttpd/cgi-bin - z przeznaczeniem na lokalizację skryptów cgi (poprzednio /var/www/thttpd/cgi-bin),
/srv/thttpd/vhosts/error - z przeznaczeniem na lokalizację stron kodów błędów HTTP,
/srv/thttpd/vhosts - z przeznaczeniem na virtualne domeny vhosts serwerwowane przez serwer (nowoutworzony).
Wszystko to zostało opisane poniżej.



#top Postinstalacyjna konfiguracja


#top Keep oryginal start script


mv /etc/init.d/thttpd /etc/init.d/thttpd-rpm
cp -av /etc/init.d/thttpd-rpm /etc/init.d/thttpd



#top Create log directory


mkdir /var/log/thttpd



#top Respect config file in start script


sed 's,/etc/sysconfig/network,/etc/sysconfig/network\n\n# Source thttpd configuration.\n[ -f /etc/sysconfig/thttpd ] \&\& . /etc/sysconfig/thttpd,g' -i /etc/init.d/thttpd
sed 's,daemon thttpd -C /etc/thttpd.conf,daemon thttpd -C /etc/thttpd.conf $OPTIONS,g' -i /etc/init.d/thttpd



#top Create /etc/sysconfig/thttpd file


touch /etc/sysconfig/thttpd
echo 'OPTIONS=""' > /etc/sysconfig/thttpd



#top Set default setting in config file


sed 's,^\(dir=.*\)$,#\1\ndir=/srv/thttpd/vhosts,g' -i /etc/thttpd.conf
sed 's,^\(logfile=.*\)$,#\1\nlogfile=/var/log/thttpd/thttpd.log,g' -i /etc/thttpd.conf
sed 's,^\(# port.*\)$,\1\nport=80,g' -i /etc/thttpd.conf
sed 's,^\(# host.*\)$,\1\nhost=*,g' -i /etc/thttpd.conf
sed 's,^\(# charset.*\)$,\1\ncharset=UTF-8,g' -i /etc/thttpd.conf


Po wprowadzeniu powyższych zmian w pliku konfiguracyjnych w logach systemowych (/var/log/messages, /var/log/daemon/daemon.log) pojawi się poniższe ostrzeżenie:
logfile is not within the chroot tree, you will not be able to re-open it
Aby umożliwić ponowne otwieranie pliku z logiem (re-open it) można wyłączyć uruchamianie serwera w środowisku chroot (en.wiki, pl.wiki)
sed 's,^chroot,# chroot\nnochroot,g' -i /etc/thttpd.conf
Po wprowadzeniu powyższej zmiany w pliku logu pojawi się następujące ostrzeżenie: sugerujące, że wyłączenie srodowiska chroot nie jest wskazane ze względów bezpieczeństwa.
started as root without requesting chroot(), warning only


#top Create directory root structure


mkdir -p /srv/thttpd/vhosts
mkdir -p /srv/thttpd/vhosts/default
mkdir -p /srv/thttpd/vhosts/cgi-bin

/bin/cp -av /var/www/thttpd/html/* /srv/thttpd/vhosts/default/
/bin/cp -av /var/www/thttpd/cgi-bin/* /srv/thttpd/cgi-bin/



#top Configure virtual hosts


echo "# enable virtual hosts" >> /etc/thttpd.conf
echo "vhost" >> /etc/thttpd.conf



#top Config file after changes


After changes config file /etc/thttpd.conf will be looks like:
# BEWARE : No empty lines are allowed!
# This section overrides defaults
#dir=/var/www/thttpd/html
dir=/srv/thttpd/vhosts
# chroot
nochroot
user=thttpd         # default = nobody
#logfile=/var/log/thttpd.log
logfile=/var/log/thttpd/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
# port=80
port=80
# nosymlink         # default = !chroot
# novhost
# nocgipat
# nothrottles
# host=0.0.0.0
host=*
# charset=iso-8859-1
charset=UTF-8
vhosts





Zmodyfikowany ostatnio: 2015/10/12 15:52:17 (9 lat temu), textsize: 4,12 kB, htmlsize: 10,3 kB

Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników