wil@redhat.com
reggy@zeelandnet.nl
`Red Hat Tips'' is documentatie die is bedoeld om RedHat gebruikers te helpen met bepaalde taken. Enkele van deze documenten zijn voor beginnende gebruikers, andere zijn voor gevorderde gebruikers. Hopelijk zal ieder document ook van hulp zijn voor zowel nieuwe als gevorderde gebruikers. Als je een bijdrage wilt leveren, zend die dan naar tech-sup@redhat.com. Als je veranderingen hebt voor een individueel Tips document, zend die dan naar de auteur van dat document.
Mark Cornick heeft de basis van dit document gemaakt (bedankt Mark!) Deze Red Hat tip file helpt je met een basisopzet van een Apache webserver. Je moet wel root zijn om dit proces te volgen.
Eerst dient de Apache RPM geïnstalleerd te worden. Deze RPM installeert de binary van de Apache web server en maakt de nodige directory's, de installatie zorgt er gelijk voor dat Apache opstart na het booten.
Na de installatie van de Apache RPM, worden er verschillende directory's aangemaakt op je systeem:
/etc/httpd/conf - configuratie files
/var/log/httpd - log files
/home/httpd/html - Waar je de html files zet
/home/httpd/cgi-bin - Waar je de CGI files zet
/home/httpd/icons - Hier staan iconen die zijn gebruikt voor de index, etc.
Er wordt een voorbeeld pagina in /home/httpd/html
geïnstalleerd,
en een paar CGI programma's zijn geïnstalleerd in
/home/httpd/cgi-bin
.
Voor dat je de server opstart, kijk dan eerst even in de configuratie
files in /etc/httpd/conf
. Deze zitten erbij
access.conf
: Deze file regelt wie er op jouw site mag komen.
Een van de dingen die je kunt veranderen zijn de ``allow'' en ``deny''
regels, deze beperken het gebruik van webpagina's. Default zijn alle hosts
toegestaan. Je kan het bijvoorbeeld zo aanpassen dat iedereen er op mag,
behalve een probleem host.
<Limit GET>
order allow,deny
allow from all
deny from b1ff.eleet.com
</Limit>
De host b1ff.eleet.com mag in dit geval de webserver niet benaderen,
maar alle andere hosts mogen er wel op.
Een ander voorbeeld is om de benadering te beperken voor enkel
je eigen domein < voor een intranet web server>:
<Limit GET>
order deny,allow
deny from all
allow from gizmonics.edu
<Limit GET>
Op deze server mogen alleen de hosts van gizmonics.edu domain komen.httpd.conf
: Dit is de main configuratie file met informatie over
jouw web server. Beneden staan er een paar voorbeelden die je moet aanpassen
voor je eigen site.
De eerste dingen die je ziet om aan te passen voor je eigen web site zijn
de modules die geladen moeten worden. Deze zijn al gebaseerd op jouw voorkeur
en behoefte, een gouden regel is: Als je niet weet wat het is dan heb je het
waarschijnlijk niet nodig ook. Lees de documentatie om meer over modules,
de features en de problemen te leren en beslis dan welke modules je neemt.
De sectie hieronder is zoals op mijn server, die van jou mag anders zijn.
# Documentatie over modules staat in "/home/httpd/manual/mod" in HTML format.
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule includes_module modules/mod_include.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule asis_module modules/mod_asis.so
LoadModule imap_module modules/mod_imap.so
LoadModule action_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule proxy_module modules/libproxy.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
#LoadModule dbm_auth_module modules/mod_auth_dbm.so
LoadModule db_auth_module modules/mod_auth_db.so
LoadModule digest_module modules/mod_digest.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
# Extra Modules
#LoadModule php_module modules/mod_php.so
#LoadModule php3_module modules/libphp3.so
LoadModule perl_module modules/libperl.so
# Reconstruction of the complete module list from all available modules
# (static and shared ones) to achieve correct module execution order.
# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
ClearModuleList
#AddModule mod_mmap_static.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_proxy.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
#AddModule mod_auth_dbm.c
AddModule mod_auth_db.c
AddModule mod_digest.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
# Extra Modules
#AddModule mod_php.c
#AddModule mod_php3.c
AddModule mod_perl.c
De Apache server kan op twee manieren draaien uit /etc/inetd.conf
of
als standalone server. Mijn advies is standalone voor betere performance
en resource redenen, alhoewel het gewoon een kwestie van behoefte is.
ServerType standalone
Hier kun je kiezen op welke poort de server moet luisteren voor connecties, poort 80 is
de standaard poort, maar je kunt dit naar behoefte veranderen, je moet dan wel het
poort nummer aan de mensen geven die van jouw server gebruik mogen maken
Opmerking: Voor poorten < 1023 moet je root zijn om de server te starten.
Port 80
Het is waarschijnlijk het beste om de server op poort 80 te laten staan
De HostnaamLookups is mogelijkheid standaard uitgezet, je kunt het gewoon weer aanzetten door
off naar on te veranderen in de regel zoals hieronder.
HostnameLookups off
Dit staat op off, dus je mag het aanzetten, dit logt de bezoekers (IP's) die
op je site komen. De performance gaat wel achteruit.
Het volgende is de user en de groep waar de webserver op draait,
dit staat standaard op user nobody en group nobody
het is een goed idee dit met rust te laten omdat dat veiliger is.
User nobody
Group nobody
Een ding dat je moet editten is de web server admin.
ServerAdmin webmaster@spaceghost.com
De server admin is de persoon die je webserver beheert, het beste is
webserver@jedomein.nl
en de persoon die er verantwoordelijk voor is in /etc/aliases
zetten
en dan het volgende runnen:
/usr/bin/newaliases
Het volgende dat je moet bekijken zijn de ServerRoot settings.
Dit is de directory waar alle configuratie, error en log files staan.
Als je deze directory op een NFS (of netwerk) gemount filesysteem zet lees dan
de LockFile documentatie bij
Apache
De standaard voor RedHat systemen is:
ServerRoot "/etc/httpd"
Je moet dit niet veranderen, als Apache gecompileerd is voor dit path.
Maar je kunt het hercompileren en ergens anders zetten.
Als je met ``virtual hosts'' wilt werken moet je de Apache documentatie
lezen bij
Apache
.mime.types
: Je moet hier niets in veranderen.srm.conf
: Deze file bevat info over directory's, files en file
types op je server. De meeste dingen moeten niet veranderd worden.
Alhoewel, als je support wilt voor server-side includes op je server,
dan moet je bij sommige van de AddType de commentaarregels weghalen.
Deze Server-side includes zijn een gevaar voor de beveiliging. Daarom zijn
ze standaard uitgeschakeld. Nu ben je er aan toe om pagina's op je server te zetten.
Gewoon HTML files, plaatjes enz. die je op je server wilt hebben in de
/home/httpd/html
directory zetten. Je kunt ook subdirs maken.
Wees er wel zeker van dat files voor het publiek te lezen zijn.
chmod a+r (name-of-file)
De file met de naam index.html
wordt default geladen als er geen
andere wordt gevraagd.
http://yourhost.com/index.html
is hetzelfde als:
http://yourhost.com/
Dus je moet de startpagina altijd index.html
noemen.
Nu ben je klaar om de server te starten met het volgende commando als root:
httpd
(De volgende keer als linux opstart zal de http server automatich opstarten.)
Probeer met een browser je webserver te benaderen. Vanuit X:
lynx http://localhost/
Als je je homepage ziet dan is het goed! Zoniet, dan krijg je enkele foutmeldingen. Deze zijn dan normaal:
chmod a+r /home/httpd/html/index.html
Nu heb je een basis web server draaien. Er zijn verschillende boeken die je kunnen helpen een uitgebreidere web server te maken met CGI, enz.. Zoals``Managing Internet Information Services'' door Liu, Peek, Jones, Buus, en Nye (O'Reilly, 1994) heeft verschillende hoofdstukken over webserver en FTP, Gopher en andere services.
Copyright (C) 1996 door Red Hat Software. Herdistributie van dit document mag alleen als de inhoud hetzelfde blijft. Met andere woorden je mag dit document printen en herdistribueren.