logo   Apache - Opsætning




I opsætningen af Apache indgår der 5 delopgaver:

  • www mappen
  • httpd.conf filen
  • Virtuelle værter: httpd-vhosts.conf filen
  • hosts filen i Windows
  • Domæner


Den efterfølgende gennemgang leder kun frem til en enkel "default"-opsætning af Apache - især de to httpd-filer. Via især disse to filer kan opsætningen gøres mere sikker og rettet mod specifikke opgaver.


www mappen

WWW filerwww mappen ligger i c:/wamp64 mappen. Den kan ikke nås fra Wampmanager.


Allerede fra installationen af Wamp indeholder mappen et par mapper og nogle filer (se billede til højre). Dem må der ikke røres ved.


Koden for de sites, der skal kunne afvikles fra Apache indlægges i hver sin mappe i www-mappen. I billedet angivet som "Site01, Site02" etc.


Det vil være hensigtsmæssigt at mappenavnet svarer til eller relaterer sig til det "second level domain" der skal angives på klienterne for at nå sitet (f.eks. webdok).


Før der arbejdes med de efterfølgende fire punkter, skal der være etableret en mappe for mindst et site. Denne skal mindst indeholde en index.xxx fil.
Apache kan default arbejde med index-filer med disse suffix: .php .php3 .html .htm.
De overflødige af disse kan slettes, eller der kan tilføjes andre i httpd.conf-filen.


httpd.conf filen

httpd.conf filen ligger i C:/wamp64/bin/apache/apache version nr/conf mappen. Den kan nås og vedligeholdes fra Wampmanager.

httpd.conf filen er allerede fra installationen opsat så den umiddelbart kan bruges uden tilpasninger.


Virtuelle værter (VH): httpd-vhosts.conf filen

httpd-vhosts.conf filen er en "subfil" til httpd.conf filen. Den ligger i C:/wamp64/bin/apache/apache version nr/conf/extra mappen. Den kan nås og vedligeholdes fra Wampmanager.


httpd-vhosts.conf filen kan nås via: Wampserver menuen -> Apache - >: httpd-vhosts.conf.


Det er i den, at alle site-specifikke opsætninger foretages. Også, hvis Apache kun skal understøtte 1 site.


Ved at sætte # som første tegn i en linie gøres linien til en kommentarlinie.


Der skal anvendes en virtuel vært for hvert site Apache skal kunne afvikle kald fra fordelt på:

  • Local host
  • LAN host
  • WEB host

Nedenfor er der er generel beskrivelse af opbygningen af virtuelle værter. Den faktiske anvendelse er beskrevet under de tre menupunkter i Webdok-menuen med ovennævnte navne.


Mens, der via Apache's basisfil httpd.conf for opsætning kun kan administreres tilknytning af et site kan der ved at aktivere VH og filen httpd-vhosts.conf etableres et reelt ubegrænset antal VH.


Ved installation af Apache er VH-filen aktiveret og den indeholder data for 1 VH. Udover at den er umiddelbart funktionel viser den "modellen" for opbygning af VH.


Opgaven for en VH er, når en bruger / klient anmoder om adgang til det site en VH administrerer, at "lytte", reagere og give klienten adgang til sitet.


De parametre / directories der kan anvendes for en VH findes også som default i httpd.conf. De parametre, der indsættes i den enkelte VH overstyrer defaultværdien.




Default VH


Default VH i httpd-vhosts.conf ved installation af Apache har denne opbygning:

<VirtualHost *:80>
    ServerName localhost
    ServerAlias localhost
    DocumentRoot "${INSTALL_DIR}/www"
    <Directory "${INSTALL_DIR}/www/">
       Options +Indexes +Includes +FollowSymLinks +MultiViews
       AllowOverride All
       Require local
    </Directory>
</VirtualHost>


Øverst er der flere generelle parametre (obligatoriske eller valgfrie). Derefter følger DIRECTORY-funktionen med indtil x parametre. Denne del fungerer nærmest som adgangsstyring overfor det enkelte site.




Containere


En VH opbygges indenfor rammerne af en ydre og en indre container.


Ydre container


"Header" og de vigtigste generelle parametre til opbygning af den ydre container i en VH er:


  • <VirtualHost *:80>
    Obligatorisk. Den ydre container angiver at kodeblokken er en VH der lytter efter IP-adresser fra alle klienter, og at der lyttes på port 80.
    * kan også erstattes af en fast IP-adresse, hvorved adgangen begrænses.
    Den faktiske IP-adresse vil være den klientens browser har fundet enten ved opslag i operativsystemets hosts-fil (C:\Windows\System32\drivers\etc\hosts) eller i DNS.
    Portnummeret styres fast fra httpd.conf for alle VH. Den kan dog ændres i httpd.conf.
    I routeren foran Apache-maskinen skal der (for at sikre entydigt "hul igennem") i portforwarding peges på fast intern IP-adresse for den aktuelle Apache-maskine og på port 80.
  • ServerName
    Obligatorisk. Både hosts og DNS er navnebaserede værktøjer til at fremfinde den lokale / offentlige IP-adresse til den relevante server. Det af brugeren angivne navn / domæne anvendes både til at finde IP-adressen og til i httpd-vhosts.conf at finde den relevante site.
    ServerName svarer således til det i klienten eller i links anførte navn / domæne.
  • ServerAlias
    Valgfri. Et eller flere mellemrumsseparerede alternative ServerName (navne / domæner) brugeren kan anvende til at tilgå det rette site. "www.----" vil nok være det mest relevante alias. Mere fantasifulde aliaser vil dog nok være irrelevante, idet IP-adressen først skal findes i hosts / DNS.
  • DocumentRoot "${INSTALL_DIR}/www"
    Obligatorisk. I Wamp64/www-mappen vil det være nødvendigt at indhegne de enkelte sites, der skal kunne afvikles på Apache, i hver sin sitemappe. (Bør af praktiske årsager have helt eller delvis navnesammenfald med hosts-navn / domæne-prefix)
    Document root er stien fra c:/ frem til og med sitemappen. Apache har i httpd.conf defineret stien bortset fra sidste led ("${INSTALL_DIR}/www"). Den endelige DocumentRoot vil derfor være: "${INSTALL_DIR}/www/sitemappe". Derfra søger Apache selv efter "index.xxx"-filen.
  • ServerAdmin
    Valgfri. Mailadresse som Apache kan sende automatisk mail til ved visse former for fejl. Kan også angives i httpd.conf fælles for alle VH.
    F. eks: ServerAdmin webmaster@localhost
  • ErrorLog
    Valgfri. Sti og filnavn for hvor Apache skal placere fejlmeddelelser. Anføres der ingen ErrorLog record anvendes default ErrorLog angivet i httpd.conf (ErrorLog "${INSTALL_DIR}/logs/apache_error.log"). Denne kan ændres.
  • CustomLog
    Valgfri. Kaldes også Access log. Sti og filnavn for hvor Apache skal placere oplysninger om alle modtagne Requests. Anføres der ingen CustomLog record anvendes default CustomLog angivet i httpd.conf (CustomLog "${INSTALL_DIR}/logs/access.log" common). Denne kan ændres.




Indre container


"Header" og de vigtigste generelle parametre til opbygning af den indre container i en VH er:


  • <Directory "${INSTALL_DIR}/www/">
    Opbygges identisk med ServerName, men afsluttes med en /. "${INSTALL_DIR}/www/sitemappe/"
  • AllowOverride
      Directives, der er tilladt i .htaccess-fil der evt. er knyttet til Apache.
    • All Alle tilladt
    • None Ingen tilladt
    Default i httpd.conf: AllowOverride none
  • Options
    Blanksepareret streng med 'Server features'. Foranstillet blank / + / - angiver om en feature er aktiv / aktiv / ikke aktiv.
    • All Alle optioner bortset fra MultiViews er aktive
    • FollowSymLinks Får Apache til at følge symbolske links for at finde en given fil.
    • None Ingen optioner er aktive
    • Includes Åbner for, at include-filer i sitekoden inddrages.
    • Indexes For sites, der ikke indeholder en index.xxx-fil i DocumentRoot-mappen, returneres i stedet en oversigt over mapper og filer i mappen til klienten. Filer kan åbnes ved at klikke på dem. Kaldes også Directory Browsing.
    • MultiViews Styring af om Content Negotiation skal være aktiv. Søger, når flere relevante filmuligheder på sitet, at vise den mest relevante fil baseret på HTTP Accept-Language header fra klienten.
    Default i httpd.conf: Options +Indexes +FollowSymLinks +Multiviews
  • Require
    Adgang til filerne i sitemappen.
    • all granted Adgang til alle.
    • all denied Adgang til ingen.
    • local Adgang til localhost.
    • valid-user Adgang til brugere, der er registreret i .htpasswd-filen og som logger ind korrekt.
    • not ip xxx.xxx.xxx.xxx Ingen adgang for ip. adresse. Blank separeret streng. Kan også anføres uden "not".
    • not host domæne Ingen adgang for anført domæne. Blank separeret streng. Kan også anføres uden "not".
    • not host domæne Ingen adgang for anført domæne. Blank separeret streng. Kan også anføres uden "not".
    Default i httpd.conf: Require all denied




hosts filen i Windows

hosts filen ligger i C:/windows/system32/drivers/etc mappen.


Hosts-filen anvendes på klienter der skal kunne kalde Apache som enten:

  • LOCAL host eller
  • LAN host

Nedenfor er der er generel beskrivelse af opbygningen af hosts filen. Den faktiske anvendelse er beskrevet under de to menupunkter i Webdok-menuen med ovennævnte navne.


Af delvis historiske grunde indeholder de fleste operativsystemer (incl. f.eks Android) en hosts-fil (kan dog vistnok visse steder have andet navn).


Tilbage i 196x-årene - da internettet hed ARPA-net - begyndte man at kunne foretage opslag på fjerne maskiner ved at kalde serverens IP-adresse. hosts-filen gjorde det muligt at kalde en server ved hjælp af et navn i stedet for at skulle angive ip-adressen. Dengang som idag er den brugerorienterede anvendelse af IP-adresser ikke det mest populære. Grundprincippet i hosts-filen er det samme vi anvender idag, når vi indsætter et domæne i URL-feltet på browseren - just som i 196x.


hosts-filen har i Windows følgende default indhold:

#
127.0.0.1 localhost
::1 localhost


De to kodelinier afslører også, at når man idag anfordrer "localhost", bliver det på maskinniveau til hhv. IP = 127.0.0.1 (4-bit IP IPv4) og IP = ::1 (6-bit ip IPv6).


Det samlede resultat er at indholdet i hosts-filen på brugerens udstyr er ligeså vigtigt idag som det var i slut-196x, men af to andre årsager:

  • Internt
    For domæner uden eller med afvigende suffix: Browseren vil søge enten på egen maskine (local host) eller indenfor eget LAN-netværk.
  • Eksternt
    For domæner med DNS-suffix: Browseren vil søge lokalt og aldrig nå frem til DNS-netværket og dermed ikke finde vej til det ønskede site.

hosts-filen kan således både anvendes til at give adgang og blokere adgang.



Data i hosts-filen

Der ses bort fra IPv6.

Hosts-filen arbejder tæt sammen med Apache-filen httpd.vhosts.conf.

Udover default kan der også indsættes andre ip/navne-kombinationer i hosts-filen:


local host

I hosts-filen på Apache serveren kan indsættes:

127.0.0.1 mappenavn på site 1
127.0.0.1 mappenavn på site 2
127.0.0.1 webdok
etc.

For hver registrering i hosts skal der findes en kodeblok i Apache-filen httpd.vhosts.conf.


LAN host

P.t. ikke beskrevet.


Web host

Der kan blokeres for adgang til websites ved at indsætte deres fulde domæne som local host i hosts-filen. Der søges derved på egen server, hvor sitet selvsagt ikke findes.

127.0.0.1 domæne 1
127.0.0.1 domæne 2
127.0.0.1 webdok.dk
etc.


Vedligehold hosts-filen:

  • managerFind Notesblok / Notepad i Windows menu og højreklik

  • I float-out menuen vælges "Mere / Kør som administrator"

  • managerÅbn hosts fra etc-mappen. Filvalget skal være på "Alle filer"

  • Foretag nødvendigt vedligehold i filen.

  • Gem hosts. Filvalget skal være på "Alle filer"



DNS cache / resolver

DNS cache eller DNS resolver cache er et datalager, der styres af Windows. Cacheen indeholder (nærmere detaljer ikke kendte) data om de senest foretagne datanavn/domæne-opslag. Browserne anvender cacheen som "first level"-DNS server.

Registreringer i hosts-filen indgår automatisk i cacheen.

Indholdet i DNS cacheen kan ses / slettes således:

  • Højreklik på Windows-ikonet. Vælg "Kør".
  • I inddatafeltet i det viste vindue skal stå "CMD". Tryk OK.

  • For at vise aktuelt indhold i cache-filen:
    I commando-vinduet tastes "ipconfig /displaydns". Tryk Enter
    cacheliste
  • Liste med alle cache-records vises.

  • For at slette alt indhold i cache-filen:
    I commando-vinduet tastes "ipconfig /dnsflush". Tryk Enter
    cacheliste
  • Cacheen indeholder derefter kun records fra hosts-filen.
Eksempler cache records.
cacheliste



Domæner

Domæner anvendes for at klienter kan få adgang til Apache som:

  • WEB host

Nedenfor er der er generel beskrivelse af anvendelsen af domæner. Den faktiske anvendelse er beskrevet under menupunktet med ovennævnte navn.


Et domæne opbygges af to eller tre dele. Når de anføres i klientens URL-felt skal de adskilles med punktum:

  • Normalt domæne
    Second Level Domain (SLD)Top Level Domain (TLD)
    webdokdk
  • Domæne med sub
    subdomainSecond Level Domain (SLD)Top Level Domain (TLD)
    nyhedertv2dk

Hvis man idag skal have et site på internettet skal man først have et domæne. Det kan f.eks. lejes hos dk-hostmaster.dk for et år ad gangen.

  • Fast IP
    Den server, hvorpå Apache (eller en hvilken som helst anden web-server) skal køres skal kunne tilgås med en fast IP.adresse. En fast adresse fra ens Web-udbyder. og en på det lokale LAN-net. (Søttes op i egen router).
  • Domæne
    Et domæne et det navn brugerne ude i den store verden skal angive for at nå frem til det ønskede site på serveren. Det kan f.eks. lejes for et år ad gangen hos dk-hostmaster.dk.
  • DNS
    Domænet og den eksterne IP-adresse skal herefter indsættes i DNS. Det kan f.eks. gøres hos "gratisdns.dk" - hvor man også kan købe mange forskellige domæner.
    Man skal påregne ca. et døgn fra et domæne er registreret i DNS-systemet til det er distribueret til alverdens DNS-knudepunkter. Først derefter vil kan brugere anvende domænet.
    Har et domæne været passivt i en periode, kan der tilsvarende gå op til et døgns tid fra brug påbegyndes til det fungerer.


I 1973-74 etableredes en fælles "Host Names On-line" med drift hos Stanford Research. Med udbredelsen af email stig antallet at hosts, der skulle håndteres dog betragtelig of led i stigende grad af problemer med fejl. Bedre blev det ikke af, at nogle større dataoperatører tog natlige kopier til eget brug.


Ud fra den stigende problematik omkring "Stanford"-dataene udvikledes DNS-konceptet over en årrække fra 1982 (startet i regi af ARPANET).


I 1983 påbegyndtes udviklingen af BIND (Berkeley Internet Name Domain) som et studenterprojekt. Det har udviklet sig til idag (efter flere opgraderinger) at være det mest udbredte DNS-software.


Sideløbende er der etableret et pålideligt netværk for opsamling og distribution af ændringer så alle browsere ikke skal søge i den samme database. Denne opsamling og distribution kan tage op til et døgns tid efter at et domæne er oprettet / rettet.


DNS var derfor det selvskrevne valg, da HTTP-protokollen begyndte at se dagens lys i 1989.



Browsere og domæner

Når en bruger via URL-feltet og Enter anmoder om at få adgang til et site iværksættes denne proces for domænet (der ses bort fra ssl):

  • Der søges i browserens egen cache
  • Der søges i den browserfælles DNS cache på aktuel klient
  • Der søges videre udenfor aktuel maskine sluttende hos DNS-server
  • Ved første hit afbrydes søgningen og den til hittet knyttede IP-adresse indsættes i URL-datastrengen
  • Den egentlige søgning frem til den site-bærende server påbegyndes.
  • Ender søgning uden at finde IP-adresse eller site returneres fejlmeddelelse til brugeren - evt som timeout.




















x
x