Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  24 2887
Hei

Tenkte jeg skulle lage en liten guide om hvordan man setter opp en Apache server med PHP i Windows XP, siden det har blitt endel spørsmål rundt dette på forumet.

Jeg har vil prøve å vise hvordan man setter dette opp manuelt, men for de "late" som ikke har interesse for å sette dette opp manuelt, finnes det ferdig løsninger.

- XAMPP
- Apace2Triad
- Wamp

Det finnes sikkert flere alternativer til ferdigløsninger, men jeg har ikke noen erfaringer med ferdig løsningene. Så derfor vil jeg ikke gå nærmere på disse.

1.0 - Du må laste ned de nødvendige filene, disse finner du her:

- Apache
- PHP

Versonene jeg brukte:

- Apache 2.0.58 (.msi fil)
- PHP 5.0.4 (.zip fil)

2.0 - Installasjon av Apache serveren

Installasjonen av apache servern går rimelig raskt, og er enkelt å konfigurere, selv for nybegynnere.

Du starter apache filen du laster ned, og følger veiviseren til du kommer til dette bilde:

http://npulz.ubitech.org/filer/Bilde...nformation.png

Her skriver du inn informasjonen i de forskjellige feltene. Vis du ønsker apache servern skal være oppe med engang du starter opp, velger du "for All Users...".

Etter at du har klikket Next (Neste) kommer det opp et nytt vindu, hvor du kan velge Typical eller Custom. Her valge jeg selv Custom. Grunnen til dette var at jeg ønsket å endre plasseringen av servern.

Nå skal installasjonen være ferdig

2.1 - Konfiurasjon av Apace serveren

Etter at du er ferdig med installasjonen, åpner du httpd.conf (konfigurasjons) filen til apache servern, i notisblokken. Dette gjøres ved å:
1. Start > Alle programmer > Apache HTTP Server 2.0.58 > Configure Apache Server > "Edit the Apache httpd.conf Configuration File"

eller

2. Utforsker (c:\hvor du installerte apache servern\Apache2\conf\httpd.conf)
Nå vil konfigurasjon filen til apache servern åpnes, her vil du se at det at endel av teksten står med # foran seg. Det betyr at det er en kommentar som er lagt til i dokumentet, og vil ikke bli vist.

Det du nå skal gjøre er å bla deg ned til hvor det står:

Kode

#Listen 12.34.56.78:80
Listen :80"/8080"
og skriver inn dette istede

Kode

#Listen 12.34.56.78:80
Listen 127.0.0.1:80"
Det som vil skje da, er at 127.0.0.1 (localhost, dvs din pc) er den eneste som får brukt servern. Dette vil gjøre slik at det blir bedre sikkerhet på apache servern. Du kan også endre den til til internte eller eksterne ip, hvis du ønsker at andre skal gå inn på servern.

Det som må gjøres nå er og endre plassen hvor filene (selve websiden) skal lagres. De du gjør da, er og bla deg ned i httpd.conf til du finner:

Kode

DocumentRoot "c:/hvor du installerte apache servern/Apache2/"
Så endrer dette til katalogen selv ønsker, feks:
Legg merke til at slashene står motsatt vei enn du ser dem i Windows Utforsker.

Kode

DocumentRoot "c:/WebSite/"
- Lagre httpd.conf
- Lukk/Stopp Apache servern
- Start Apache serveren, slik at de nye endringene i filen trer i kraft.
- Lag en HTML-fil og plasser den i katalogen du velgte ovenfor, som nå er rooten til selve webtreet
- Åpne favoritt browseren din og skriv inn adressen http://localhost/filnavnet.html

Vist alt er konfigurert riktig i apache servern, vil filen bli åpnet.

Nå skal Apache serveren være satt opp til å håndtere alle forespørsler etter vanlige HTML-filer, som er lagret i DocumentRott katalogen

3.0 - Installasjon av PHP

Det er to muligheter for å installere php

- Bruke installasjonsveiviser.
- Foreta manuell installasjon.

Jeg vil vise hvordan PHP blir installert ved manuell installasjon, men dette vil ta lengre tid en ved installasjonsveiviser, men vær oppmerksom på at denne har flere ulemper knyttet til sikkerhet og fleksibilitet.

Nå henter du fram php.zip (php-5.0.4-Win32.zip) filen du lastet ned, og ekstraterer/pakker den ut. Og endrer mappennavnet til php og flytter hele mappen til c:\php.

Det som må gjøres nå er å gjøre filen php5ts.dll tilgjengelig for PHP-programvaren. Det trygeste og enkleste er å kopiere den til systemkatalogen i Windows (c:\Windows\System32).

Nå skal konfigurasjonsfilen av PHP kopieres til Windows-katalogen din. Kopier filen:
php.ini-recommended og endre filnavnet til php.ini
Dette er konfigurasjon til PHP som inneholder standardinstillingen for hvordan PHP skal oppføre seg. Instillingene ender du på samme måte som i Apache (httpd.conf).

Det kan være lurt å åpne php.ini for å sørge at display_errors er slått på. Dette gjøres ved å fjerne semikolonet slik at instillingen ikke er kommentert ut:

Kode

display_errors: On
Det som skjer da, er at det vil komme frem feilmeldinger i nettleseren hvis det er feil i PHP-scriptet som gjør at det ikke kjøres riktig. Av sikkerhetsmessige årsaker bør denne instillingen slås av idet en side skal offentliggjøres, slik at det ikke blir vist informasjon om filnavn, databasetabeller og lignende til brukeren. Men under utviklingen av siden er det viktig å få opp hvor det er feil.

3.1 - Konfigurasjon av PHP og Apache

Du har nå lastet ne Apache og PHP. Webtjeneren kan håndtere HTML, men trenger og konfigureres slik at PHP-tjeneren kan håndtere PHP-script.

Det som må gjøres er å åpne httpd.conf og lete deg ned til:

Kode

#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
Noe av koden er kuttet bort

Det du nå skal gjøre er å legge til følgende setning nederst i avsnittet

Kode

LoadModule php5_module c:/php/php5apache2.dll
Dersom du bruker PHP 4 skal du sette inn:

Kode

LoadModule php4_module c:/php/sapi/php4apache2.dll
Det som skjer nå er at PHP startes samtidig med Apache.

Nå må du lete deg nedover til avsnittet mot slutten av httpd.conf

Kode

#
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
Sett inn to linjer, slik at det står:

Kode

# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Den første setningen sikrer at PHP vil behandle alle filer som slutter med filnavnet .php
Den andre setningen gjør at koden i alle filer som har endelsen .phps vises som HTML med passende farger, slik som feks dette:

Kode

<?php
phpinfo ();
?>
- Lagre httpd.conf
- Lukk/Stopp Apache servern
- Start Apache serveren pånytt

4.0 - Teste om alt fungerer

Nå er det klart for å teste om apache og php har blitt installert og konfigurert ritkig. Dette gjør du ved å lage et test script hvor du skriver inn denne PHP-koden:

Kode

<?php
phpinfo ();
?>
Deretter lagrer du filen til feks info.php. Deretter åpner du favoritt nettleseren din å skriver inn adressen http://localhost/info.php

Hvis alt er riktig satt opp hvil dette blant annet dette komme opp på skjermen din

http://npulz.ubitech.org/filer/Bilde...P/php_info.png

Det som skjer da er at du kjører et PHP-script som viser om PHP og Apache er satt riktig opp.

Du skal nå ha ha installert og konfigurert Apache og PHP riktig, nå er det bare og begynne med å lage sider som du tester på pcen din før du legger dem ut på nettet.

Siden jeg ikke har noen spesielt stor erfaring med MySQL enda, har jeg valgt å ikke lage guide til denne enda, men får se hva tiden viser.

Håper guiden kommer til nytte, og kom gjerne med forbedringer av selve guiden.

Kilder:
- Web Programmering i PHP av tisip (Bok)
- Installing Apache PHP MYSQL

PS: Beklager hvis det skulle være noe skrivefeil i teksten.
Sist endret av nPulz; 31. mai 2006 kl. 15:17.
Har oppdatert serveren min til apache 2.2, og nå får jeg ikke serveren til å fungere. Har skjekket i loggen, å får opp denne feilmeldingen:

Kode

Thu Jun 01 21:22:52 2006] [error] (OS 10038)Det ble forsøkt en operasjon på noe som ikke er en kontakt.  : Child 300: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
Jeg skjønner ikke helt hva som er galt. Jeg har skjekket konfigurasjonene og disse skal være korrekte. Hva er Win32DissableAcceptEx? Jeg har søkt på apaches side, men kunne ikke finne noe om dette.

I httpd.conf har jeg satt adressen til å være min IP-adresse ut til internett (kjører gjennom router), og det samme har jeg gjort i name. Brannmuren har jeg slått av under test av serveren, så denne er ikke problemet. Jeg har også portforwarded port 80 til min interne ip.

Noen som har tips til hva som kan være galt?
Trigonoceps occipita
vidarlo's Avatar
Donor
Du skal ikkje sette den adressa. Tipset er å ikkje sette adresse med mindre du må. Den IPen du setter vil apache prøve å binde seg til, men det er IPen som tilhører routeren. Den IPen finst ikkje på noko interface på din pc, altså får ikkje apache binde seg til denne. Fjern den IPen fra config fila, og ikkje ha med ein ip der i heile tatt.
▼ ... mange måneder senere ... ▼
Det jeg lurer på er om alle i hele verden kan se denne siden? Eller må jeg åpne poerter og div. da? Sånn som man må gjøre når man lager VT server osv..? Eller er det bare lokalt nettverk som kan se siden?
Om du sitter bak en router må du forwarde port 80 for at folk utenfra skal kunne se webserveren din
Og hvordan gjør jeg det?
Sitat av mopplest
Og hvordan gjør jeg det?
Vis hele sitatet...
Å søke er en god start: http://www.freakforum.nu/forum/showthread.php?t=47932.
Takk for flott guide
Sitat av moridin
Om du sitter bak en router må du forwarde port 80 for at folk utenfra skal kunne se webserveren din
Vis hele sitatet...

Den er port 80 alt.. Hva vil linken bli da?
Ip-adressen min?
http://www.apachemysqlphp.com/ er grei guide også

*edit*: d'oh, ny url.
Bruk heller EasyPHP , setter opp alt for deg

http://www.easyphp.org
Tusen takk Men ett spørsmål, easyPHP åpner den portene også:S ?
EDIT: Nepper den gjør det men:P
nPulz's Avatar
Trådstarter
Du må nok gjøre dette manuelt, enten forwarde til port 80 eller 8080. Bruker du 8080 blir adressen slik:

http://dinipadresse:8080

bruker du port 80 blir adressen slik

http://dinipadresse/
Sist endret av nPulz; 8. mars 2007 kl. 23:50.
▼ ... over en uke senere ... ▼
Når jeg skriver inn:
LoadModule php5_module c:/bla bla/bla bla/masse rart/php5apache2.dll
så starter ikke apache... :O
w00t is wr00ng?

mulig jeg ikke har samme versjon av apache/php som guiden -.-
bumpelibump

det er:
LoadModule php5_module C:/Documents and Settings/***** ****/Mine dokumenter/Diverse/Wubserver/PHP/php5apache2_2.dll btw -.-
▼ ... over en uke senere ... ▼
nPulz's Avatar
Trådstarter
Hvilken Apache og PHP versjon bruker du? Ta og kjør en test av apache servern og se hvilken feilmelding som kommer opp. Som ligger under
Start > Alle Programmer > Apache HTTP Server x.x.x > Configure Apache Server > Test Configuration

Jeg kjører Apache 2.2.4 og PHP 5.2.1 for øyeblikket, og hadde samme feilmelding som deg, om jeg forstår deg riktig.

Løsningen finner du her
http://www.apachelounge.com/forum/viewtopic.php?t=570

Kort forklart:
Det er en bug i denne versjonen av Apache, slik at den ikke klarer og åpne .DLL filen, om jeg har forstått det riktig.

Det du må gjøre er å:
Laste ned php5apache2.dll-php, deretter ekstratere denne en plass og les .readme filen hvordan du skal gå fram.

# binary by: Steffen
# Mail:
# Home: http://www.apachelounge.com/
#
#
# Runs only with PHP 5.1.0-5.1.6 and Apache 2.2.0-2.2.3 !!

# Install:

- Copy php5apache2.dll to your php folder (eg. c:/php)

- Copy httpd.exe.manifest to apache2/bin

- Finally install the Visual C++ 2005 Redistributable Package (the binary is build with VC 2005).
Download it from:
http://www.microsoft.com/downloads/d...displaylang=en


# Add to your httpd.conf

LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

Note: Remember to substitute the c:/php for your actual path to PHP in the above examples.


For extra info see also : http://www.apachelounge.com/forum/viewtopic.php?t=570


Enjoy,

Steffen
Vis hele sitatet...
▼ ... over en uke senere ... ▼
Må jeg åpne port forward (Eller hva det nå het) For at folk kan se siden?
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Ramplest: Selvfølgelig, en http server er akkurat som alle andre servere, og da må du selvfølgelig la folk få tilgang til pcen din
m0b
m0b's Avatar
DonorAdministrator
Sitat av nPulz
Porten er allerde åpnet TCP, om du kjører port 80. Du må forwarde dette UDP, slik at sluttbrukeren får kontakt med din maskin (IP adresse).
Vis hele sitatet...
Hva legger du i at "porten allerede" er åpnet TCP? Snakker du for RampLest og at du vet hva han har forwardet? Jeg ønsker bare en liten forklaring på hva du egentlig legger i det du sier, fordi jeg får det ikke helt til å stemme.

Såvidt meg bekjent benytter Apache stort sett TCP for sin transport av data til klientene, og dersom det forekommer trafikk per UDP så er det mye mulig at dette er DNS-trafikk. (HostnameLookups) Men dette er trafikk som går ut fra serveren, så jeg ser ikke noen grunn til at han skal måtte forwarde noe som helst inn for UDP. Eller er det noen konfigurasjon som har gått meg hus forbi?
nPulz's Avatar
Trådstarter
Beklager, jeg som tenkte feil der. Er vel igrunn omvendt av det jeg skrev ovenfor.
▼ ... over et år senere ... ▼
Hei

Jeg er ganske ny med Apache og PHP, men prøver allikevel.
Bra guide forresten!

Men en ting jeg lurer litt på: når jeg skal endre ting i httpd.conf og lagre etterpå så får jeg bare feilmeldingen:
"Kan ikke opprette filen: "C: \Program Files\Apache Group\Apache2\conf\httpd.conf .
Kontroller banen og filnavnet."

Hva gjør jeg?
Sist endret av davids; 10. september 2008 kl. 17:40.
sjekk at filbanen faktisk finnes. sjekk at du ikke har skrivebeskyttet filen. steng serveren før du gjør det
Jeg har gjort alt dette.
Ikke skrivebeskyttet, filbanen finnes og jeg har stengt serveren før jeg gjør det, men allikevel får jeg denne feilmeldingen.

Forresten så er det nok sannsynligvis filbanen som det er noe i veien med.
For feilmeldingen sier CProgram Files\... mens den ligger egentlig i CProgramfiler\...

Det sære er at når jeg klikker meg innover i mappene så klikker jeg på "Programfiler -> Apache Group -> Apache2 -> conf" for å komme meg dit hvor filen ligger. Men når jeg klikker for å se hvor den ligger (Jeg kjører Vista), dvs jeg klikker på den lille mappen som er rett til høyre for de blå pilene som er i explorer så står det at jeg er inne i: "CProgram Files\Apache Group\Apache2\conf"

Har enda ikke helt fått til hva jeg skal gjøre med dette...noen forslag?
prøvd å endre filbanen da?
Prøvd det meste, men har ordna det nå.
Fikk fjerna det helt fra maskina og installert det igjen et annet sted på PCen.