Web Server Setup Tips Will Harris, wil@redhat.com Vertaler: Reggy Ekkebus reggy@zeelandnet.nl V1.1, 21 april 1999 ____________________________________________________________ Inhoudsopgave 1. Inleiding 2. Introductie 3. Het begin 4. Instellen van de Server 5. Een Website opzetten. 6. Verdere documentatie 7. Copyright Gegevens ______________________________________________________________________ 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 directories, 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 directories 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 <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 directories, 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.