Apache HTTP server

Introduktion til programmet Apache som er en HTTP server der kan bruges til at køre en hjemmeside på

HTTP server

For at vise din hjemmeside med udført PHP kode på din computer skal vi bruge en HTTP server.

Apache er en HTTP server.
apache logo
Med apache kan du teste din hjemmeside på din egen computer inden du uploader den til dit webhotel.

Download

Apache kan downloades fra www.apache.org.

Installation

Når du har downloadet den Apache installation der passer til din computer, for eksempel httpd-2.2.19-win32-x86-no_ssl.msi så kan du starte installationen.

Her er nogle billeder af installationen af Apache på Windows.
apache installation
Hvis man vil kan man tilvælge/fravælge de ting som skal installeres og vælge en anden installationsmappe.
apache installation
Her skal man vælge Network Domain, Server Name og Administrator's Email Address.
Jeg ved egentligt ikke hvad man skal skrive men jeg skriver bare localhost fordi jeg kun skal bruge serveren lokalt.
apache installation

Dog dukker denne besked op.
apache installation
Jeg har prøvet at skrive 127.0.0.1 i stedet for men den samme besked kommer op igen.
Det er vel meningen at man skal skrive netkoder.dk for eksempel men det virker bare forkert når man kun skal bruge serveren lokalt.
Men serveren virker alligevel selvom den besked kommer.

Hvis man senere ønsker at ændre de indstillinger man vælge under installationen så kan rette det i Apaches konfigurationsfil httpd.conf eller afinstallere Apache og køre installationen igen.

Opsætning

Apache opsættes med httpd.conf filen i conf mappen hvor Apache er installeret.

For eksempel :
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

Åben httpd.conf filen i dit tekstredigeringsprogram. Brug for eksempel Notepad++.

Her følger de ændringer jeg har lavet i min httpd.conf fil.



Søg efter DocumentRoot og ret stien til den mappe hvor du har din hjemmeside filer i.

Filerne til min hjemmeside ligger i mappen netkoder.dk på skrivebordet.
mappe på skrivebordet

Så derfor retter jeg DocumentRoot til følgende.

Søg efter <Directory " og ret stien til det samme som DocumentRoot.
Ret også AllowOverride None til AllowOverride All (gør at man kan bruge .htaccess filer).

Søg efter DirectoryIndex og ret det til den fil du ønsker som startside i din hjemmesidemappe.
Det er den side som vises når man besøger http://localhost/

I mappen C:\Users\Administrator\Desktop\netkoder.dk oprettet man så index.php filen og skriver sin PHP kode deri.

For at PHP koden i filerne skal blive udført så skal vi tilføje følgende kode til sidst i httpd.conf filen.
Måske har PHP installationsprogrammet allerede tilføjet noget af det sidst i filen.

På min computer er PHP installeret i mappen : C:\Program Files\PHP\
Juster selv stien hvis du har installeret PHP i en anden mappe.

Filen "php5apache2_4.dll" er et apache modul som følger med i den version af PHP som kaldes "Thread safe".
Så når du downloader PHP skal du downloade den version som kaldes "thread safe" for at få denne fil som apache skal bruge.

Linjen AddType application/x-httpd-php .html .php fortæller apache at den skal udføre PHP kode i filer som ender med .html og .php.
Hvis du skal uploade dine filer til et webhotel vil du måske som jeg finde ud af at PHP koden kun bliver udført hvis filen ender på .php.

Test om det virker

Besøg adressen http://localhost/ for at teste om Apache virker og er sat korrekt op.
apache localhost test
http://localhost/ peger på den computer du bruger.
Andre på internettet vil altså ikke kunne se det samme som dig når de besøger den adresse.

500 Internal Server Error

Fejlen 500 Internal Server Error stammer fra HTTP serveren (For eksempel Apache).
internal server error

Det betyder at noget gik galt.

For at få mere information skal vi kigge i server fejlloggen.

Fejl logfilen kan for eksempel findes i C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log.

Følgende fejl betyder at jeg har forsøgt at bruge RewriteEngine i en .htaccess fil uden at modulet er indlæst.


Følgende fejl betyder at jeg skrev rundstykke på en linje i .htaccess filen.

Apache monitor

I start menuen kan du starte, stoppe og genstarte Apache hvis du får brug for det.
apache i Windows start menu
Hvis "Monitor Apache servers" programmet er startet vil man kunne se et ikon i systembakken hvor man kan se om Apache serveren køre og ved at klikke på ikonet kan man starte, stoppe og genstarte Apache.
monitor apache servers systembakke ikon
monitor apache servers systembakke ikon
Hvis man har lavet ændringer i httpd.conf filen så skal man genstarte Apache før ændringerne træder i kraft.

Her ses ikonet når Apache er stoppet.
monitor apache servers systembakke ikon
Hvis Apache ikke vil starte selvom du vælger start så er kan det skyldes noget i httpd.conf filen som er forkert så Apache ikke kan starte.

Httpd.conf

Her er noget opsætningsinfo jeg endnu ikke har skrevet færdig.

Asynchronous AcceptEx failed

Da jeg skiftede til Apache 2.4 fik jeg nogen problemer i Internet Explorer hvor browseren nogen gange ikke ville indlæse siderne, så stod browseren bare og søgte indtil man genstartede Apache så virkede noget tid igen.

En fejlbesked i logs/error.log kunne se sådan her ud.


En løsning er muligvis at tilføje følgende i conf/httpd.conf filen også genstarte Apache.


Du kan teste om det virker i Internet Explorer ved at holde Ctrl nede også klikke på et link flere gange så der åbner 10 nye faneblade.
Hvis du har fejlen så vil nogen af fanebladene muligvis ikke indlæse.
Når fejlen er væk vil alle fanebladene indlæse.

Læs mere her : Apache :: Apache 2.4 => winnt_accept: Asynchronous AcceptEx failed.

VirtualHost introduktion

Når man tester sin hjemmeside lokalt så plejer man og bruge http://localhost/, det virker fint nok hvis man kun har én hjemmeside.

Jeg har 2 domæner (netkoder.dk og scootergrisen.dk) som jeg gerne vil teste lokalt.

Lokalt kunne de hedde http://netkoder.localhost/ og http://scootergrisen.localhost/.

For at dette kan lykkedes kan man rette i httpd.conf og hosts filerne og få 2 lokale subdomæner.

VirtualHost opsætning

I httpd.conf skal vi lave to virtualhosts.


Din hosts fil findes i C:\Windows\System32\drivers\etc\hosts (Windows) eller /etc/hosts (Linux/Mac).

I hosts filen kan du sætte styresystemets DNS service til at lytte på http://netkoder.localhost/ og http://scootergrisen.localhost/ og dirigere til 127.0.0.1 ved at tilføje følgende.

.htaccess

Skriv din kommentar

Spørg mig om hvad som helst
Du kan også skrive direkte til mig på
Stem
Søg
Language

Select English to navigate the website in English. Things like the navigation menu and contact form will be in English, but the main content on each page will not be translated.