Web Server Setup Tips

Will Harris, wil@redhat.com

Vertaler: Reggy Ekkebus reggy@zeelandnet.nl V1.1, 21 april 1999

Inhoudsopgave

1 Inleiding 1 2 Introductie 1 3 Het begin 1 4 Instellen van de Server 1 5 Een Website opzetten. 5 6 Verdere documentatie 6 7 Copyright Gegevens 6

1 Inleiding

‘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.

2 Introductie

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.

3 Het begin

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.

4 Instellen van de Server

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

4. Instellen van de Server 3

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 <http://www.apache.org/docs/mod/core.html##lockfile>

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 <http:

//www.apache.org/>.

• 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.

5 Een Website opzetten.

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:

• “File Not Found: the file index.html was not found on this server”

Betekent dat er geen index.html is, dus die moet nog gemaakt worden.

• “Forbidden: you’re not allowed to access index.html on this server” Betekent dat je de index.html voor iedereen leesbaar moet maken:

             chmod a+r /home/httpd/html/index.html

6 Verdere documentatie

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.

7 Copyright Gegevens

Copyright (C) 1996 door Red Hat Software <http://www.redhat.com>. Herdistributie van dit document mag alleen als de inhoud hetzelfde blijft. Met andere woorden je mag dit document printen en herdistribueren.