Issuu on Google+

Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 1 af 10

PHP og IIS Installation og konfiguration af PHP til Internet Information Service (IIS). Denne vejledning gennemgår installation og opsætning af PHP på en Windows 2000 server med IIS 5.0. Andre Windows version kan bruges uden ændringer, dog vil nogle skærmbilleder se anderledes ud.

Hvad skal du bruge Før du kan komme i gang skal du hente den sidste version af PHP. Det kan du gøre her på www.php.net Du kan downloade 2 forskellige version under Windows Binaries sektionen. Vi forslår at du hente den der hedder PHP X.X.X zip package. I denne pakke ligger alle de filer du skal bruge og du vil selv have styr på hele installationen, hvorimod den anden pakke forsøger at gøre det hele for dig. I mange tilfælde virker det fint, men hvis det gøår galt, ved man aldrig helt hvor.

Installation af PHP Pak zip filen ud på det sted på computeren du ønsker at benytte. Denne vejledning vil bruge stien c:\server\. Heri vil vi installare både PHP og mySQL. Pak alle filer ud i mappen c:\server\php. Det første step var jo meget let. Nu skal du til at lave noget. Mange ISP'er vælger at sætte deres php server op så alle kan kode til dem. Det gør dem desværre lidt mere sårbare overfor hackere. Derfor vil denne vejledning vise hvordan man sætter PHP op på den mest sikre måde. Følg nedenstående steps. 1. Kopier filen php.ini-recommended fra c:\server\php til C:\Windows eller C:\WinNT afhængig af dit system. 2. Omdøb filen til kun at hedde php.ini. 3. Åben filen med notepad.exe eller et andet textprogram. Nedenstående punkter skal rettes i php.ini filen. 1. Find teksten display_errors i php.ini 2. Denne ændres nu fra display_errors = Off til display_errors = On. Dette gøres for at du kan se hvilke fejl php sender til dig når du udvikler. For ikke at give hackere mulighed for at se noget af din kode skal denne slås fra i et produktionsmiljø. 3. Find teksten error_reporting 4. Ret denne fra error_reporting = E_ALL til error_reporting = E_ALL & ~E_NOTICE Dette betyder at du under udvikling får alt at vide når der opstår en fejl i dit script. Denne slås fra i et produktionsmiljø. 5. Find teksten extension_dir 6. Denne ændres fra extension_dir = ./ til extension_dir = ./extensions. Nu kan php finde alle sine eksterne moduler 7. Find teksten upload_tmp_dir 8. Denne ændres fra ;upload_tmp_dir til upload_tmp_dir = c:/server/php/uploadtmp

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 2 af 10

Husk at fjerne semikolonet. 9. På C:\server\php\ skal du oprette en mappe der hedder uploadtmp. Denne mappe kommer til at indeholde alle de filer, som en bruger uploade til din server via et php script. 10. Find teksten session.save_path 11. Denne øndres fra session.save_path = /tmp til session.save_path = c:/server/php/sessiondata 12. På C:\server\php\ skal du oprette en mappe der hedder sessiondata. Denne mappe kommer til at indeholde alle serveren sessions data. Denne mappe er meget vigtigt hvis du ønsker at udvikle sessions styrede applikationer. 13. Find teksten session.name 14. Denne ændres fra ; session.name = PHPSESSID til session.name = UNQSESSID Du behøver faktisk ikke at øndre denne. Grunden til at vi medtager den her er fordi du kan gøre din php installation endnu mere sikker hvis dine sessions hedder noget der forskelligt fra alle andre. 15. Find teksten register_globals 16. Denne setting er faktisk en af de allervigtigste i hele opsætningen. Det er nøglen bag større sikkerhed i din installation. Denne SKAL se sådan ud register_globals = Off. Hvis du har problemer med din kode efterfølgende kan du sætte denne til On. læs mere om register globals længere nede 17. Find teksten cgi.force_redirect 18. Denne ændres fra ;cgi.force_redirect = 1 til cgi.force_redirect = 0 Husk at fjerne semikolonet. Hvis ikke denne står til 0 så vil det ikke virke på IIS 19. Det kan i nogle tilfælde være godt at kunne bruge andet en bare php. Derfor følger der mange eksterne moduler med som du kan loade. Under sektionen extensions, står der en hel liste af dem Vi har i denne vejledning valgt at gøre brug af XSL og XML. Find linien ;extension=php_xslt.dll og fjern semikolonet foran linien. 20. Vi har valgt denne fordi det er den sværeste at få til at virke. Kopier følgende 3 filer fra c:\server\php\dll til c:\Windows\System32 eller C:\WinNT\system32 sablot.dll expat.dll iconv.dll

Register globals og general sikkerhed. Grunden til at mange ISP'er vælger at sætte denne til On, er fordi det for mange er nemmere at kode. Ligeledes brugte alle de ældre versioner af php denne form. Det har imidlertid vist sig at være en sikkerhedsrisiko. Mange systemer benytter brugernavn og password til at give folk adgang til deres webside. Dette gøres nemmest ved at have en simpel HTML form med 2 tekst felter og en knap på. Når brugeren har indtastet sine data og trykker på OK knappen så sender browseren disse informationer til din server. Denne metode hedder POST, og vil sige at data bliver apkket ind i en POST session på serveren. Man kan også overføre variabler via en url på denne måde. www.ditdomain.dk/index.php?brugernavn=test&password=test. Det er naturligvis ikke særligt effektivt men kan bruges. Denne metode hedder GET og data pakkes ind i en GET session på serveren.

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 3 af 10

Problemet er at hvis register_globals er On, så kan disse variabler tilgåes direkte. Se nedenstående stykke kode. <? echo "Dit brugernavn er" . $brugernavn . " og dit password er " . $password; ?> Denne linie ville skrive Dit brugernavn er test og dit password er test Det er sådan at hvis der både er en variable i POST der hedder A og en i GET der hedder A, så kan man som udvikler ikke vide hvilken en af dem der er den rigtige, og det kan give sikkerhedsproblemer. Hvis man derimod ved at login siden giver POST variable sessioner, så skal der ses bort fra GET. Det vil sige at en bruger kan ikke snyde ved at brøve at skrive www.ditdomain.dk/index.php?brugernavn=test&password=test, når du forventer alle variabler som POST. Hvis derimod register_globals er Off, så ville samme kode vise dette <? echo "Dit brugernavn er" . $brugernavn . " og dit password er " . $password; ?> Denne linie ville skrive Dit brugernavn er og dit password er Den rigtige måde er nedenstående. <? echo "Dit brugernavn er" . $_POST["brugernavn"] . " og dit password er " . $_POST["password"]; ?> Denne linie ville skrive Dit brugernavn er test og dit password er test Dette kan du læse mere om her.

Konfiguration af IIS. For at få PHP til at virke sammen med IIS sjak du følge nedenstående steps. 1. Åben dit IIS (Internet Information Services i Administrative værktøjer i kontrol panelet) 2. For at IIS kan finde ud af hvad den skal gøre med dine PHP filer skal du følge nedenstående. 3. Som på nedenstående billede skal du vælge at oprette et nyt website.

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 4 af 10

Følg den næste billeder.

Tryk på Next

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 5 af 10

Skriv navn på dit website. I vores tilfælde kalder vi det for test. Tryk på Next

Hvis du bruger Host Header sites, så skal du udfylde dette. Hvis ikke kan du blot trykke Next

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 6 af 10

Vælg den sti dit website ligger i. og tryk på Next. Note: Har du ikke oprettet en mappe endnu kan du åbne Stifinderen og gøre dette. Brug browse knappen til at finde mappen.

Vælg af dette site gerne skal kunne bruge execute (Such as ISAPI applications or CGI) Tryk Next

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 7 af 10

Du har nu oprettet en nyt site med navnet test. Tryk på Finish Indtil nu ved din server ikke hvad den skal gøre med PHP filer. Følg nedenstående. Højreklik på din servers navn servers navn og vælp "Properties" Du vil nu se nedenstående side.

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 8 af 10

Vælg fanebladet "Documents". Du skal nu tilføje alle de Default documents du vil bruge. Tryk på Add knappen og udfyld dialogen og klik OK. Denne vejledning bruger følgende Defaults. index.php index.php3 index.php4 default.php

Vend tilbage til fanebladet "Home Directory" og vælg Configuration knappen i bunden af billedet. Du vil nu se nedenstående billede.

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 9 af 10

kli på knappen Add og ufyld dialogen som på nedenstående billede.

Tryk på OK. Tryk OK igen for at lukke konfigurationsvinduet. Du skal nu gernesrte din IIS. Højreklik på din server og vælg Restart IIS

Test PHP installationen. Det var det. Nu skal du kun gøre en ting mere og det er at oprette en test file til dit nye website. Lav en ny fil i den mappe som dit website peger på. Kald den for index.php Åben filen og skriv følgende.

http://rsd-online.dk/phpiis.html

10-02-2007


Installation og konfiguration af PHP til Internet Information Service (IIS)

Side 10 af 10

<?php phpinfo(); ?> Åben din browser og skriv adressen på dit website. F.eks. www.ditdomain.dk, localhost eller 127.0.0.1 Du skulle nu gerne se en PHP konfigurations side. Dette betyder at alt er som det skal være.

http://rsd-online.dk/phpiis.html

10-02-2007


pdfer