Om een Apache test webserver onder Windows te kunnen draaien met PHP en MySQL, zul je een aantal
installaties en handmatige veranderingen moeten verrichten. Het volgende artikel gaat over het opzetten van
webserver onder Windows met de officiele software. De sofware is gedistribueerd onder verschillende Licenties,
deze mag je wel gebruiken. Maar lees eerst de Licentie voorwaarden wel even. Deze handleiding is niet bedoeld
voor Productie Servers.
HIER ALLE BENODIGDE SOFTWARE MET DE LINKEN
DE APACHE WEB SERVER: Download De Apache Software Bij: Apache.org
DE PHP SCRIPTTAAL:
Download De PHP Software Bij: Php.net
DE MYSQL DATABASE:
Download De MYSQL Software Bij: mysql.com
MYSQL ADMINISTRATOR
Tevens ga ik nog een hulp programma gebruiken. MySQL Administrator download de software op: mysql.com
- DE GEBRUIKTE SOFTWARE:
- Apache v1.3.33
- PHP
- MySQL
- MySQL Administrator
Ik ga er vanuit dat we de Apache server versie 1.3.33 gaan installeren. Versie v2.0.55 is er,
maar ik heb gemerkt dat deze versie zeer langzaam kan zijn. Uiteraard kun je deze versie
proberen, maar in onderstaande artikel wordt van versie v1.3.33 uit gegaan.
HET BEGIN
- DE INSTALLATIE OMGEVING:
- Het OS ( Operating System ) is Windows XP met SP2 ( Service Pack 2 ) en de updates.
- Het uitpak programma is WinZip.
- UITGANGS SITUATIE:
- We gaan er vanuit dat je de webserver gaat installeren op c:\
- Schakel de Firewall uit van XP of van een andere software leverancier.
- Dit scheelt een vervelend vraag en antwoord spel.
- Na dit artikel kun je de machine herstarten.
- Geef onderstaande programma's dan toegang tot het Internet.
- De tijds investering voor het gehele artikel
- downloaden, installeren en configureren bedraagt 3 uur
HET INSTALLEREN
- Als eerste ga je nu alle software installeren.
Pas daarna ga je alles configureren. Mijn voorkeur ligt bij het installeren bij deze volgorde.
- Apache
- PHP
- MySQL
- MySQL Administrator
DE INSTALLATIE VAN DE APACHE WEB SERVER
- INSTALLEER HET .EXE BESTAND WAT JE GEDOWNLOAD HEBT.
- Dubbel klikken op het .exe bestand.
- Volg de installatie van Apache, deze wijst zich vanzelf.
- HIERBIJj EEN OVERZICHT:
- Klik op Next > bij het welkomstscherm.
- Accepteer de Apache License.
- klik op Next >.
- Lees de " Read Me First "
- klik op Next >.
- Bij " Network Domain " vul in " uw_naam.nl ".
- Waarbij uw_naam elke willekeurig gekozen kan zijn.
- Maak er iets mooi van.
- Bij " Server Name " vul in " www.uw_naam.nl "
- Bij " Admin Email " vul in " info@uw_naam.nl "
- Houdt het vinkje bij for All Users Recommended.
- Klik op Next >
- Kies voor Complete Setup Type.
- klik op Next >
- Laat Apache de Destination Folder bepalen, dus niet veranderen.
- klik op Next >
- Klik op Install.
- Je zult nu even moeten wachten tot alles geïnstalleerd is.
- Klik op Finish.
DE INSTALLATIE VAN PHP
- DE INSTALLATIE VAN PHP MOET JE HANDMATTIG DOEN:
- Maak in de map C:\ een nieuwe map aan, genaamd C:\php
- Pak het php-4.4.0-Win32.zip bestand uit in een tijdelijke map en kopieer deze naar C:\php
- Zie voor het uitpakken van een .zip bestand de handleiding op Winzip
DE INSTALLATIE VAN DE MYSQL DATABASE
- PAK HET MYSQL-4.1.14-WIN32.ZIP BESTAND UIT WAT JE GEDOWNLOAD HEBT.
- Start het bestand setup.exe en volg de installatie, ook deze wijst zich vanzelf.
- Klik op Next > bij het welkomstscherm
- Kies voor het Complete Setup Type
- Klik op Next >
- Bij het volgende scherm klik op Install
- Een Sign-Up formulier verschijnt.
- Je kunt je aanmelden, maar voor deze tutorial sla ik die stap nu over.
- Klik op Skip Sign-Up.
- Je krijgt nu de mogelijkheid om de MySQL Server te configureren.
- Dat gaan we doen.
- Laat het aanvink vakje aangekruist.
- klik op Finish
- Nieuwe vensters verschijnen. De Configuratie Wizard.
- Klik op Next >
- Kruis het aanvink vakje bij Standard Configuration.
- Klik op Next >
- Beide aanvinkvakjes blijven aangevinkt in het volgende scherm.
- We willen dat MySQL als een Windows Service automatisch bij het opstarten van de machine opstart onder de naam MYSQL.
- Klik op Next >
- Nu moet je opletten.
- Er wordt nu om een wachtwoord voor de gebruiker Root gevraagd.
- Dit is de belangrijkste man voor MySQL.
- Standaard heeft root geen wachtwoord, wat uiteraard niet wenselijk is.
- Ik vul als wachtwoord wachtwoord in ( 2 keer ) en vink NIET aan dat de gebruiker.
- Root van buiten deze machine zich mag aanmelden.
- Hierdoor verminder je de kans op aanvallen van buitenaf.
- Ik wil geen anonieme gebruikers, dus dat aanvinkvakje blijft leeg.
- Klik nu op Next >
- Klik op Execute in het venster welke alle gereedstaande taken weergeeft.
- Er verschijnt een overzicht welke taken er uitgevoerd zijn.
- Er is geen foutmelding te zien.
- Klik op Finish
- Installeer nu het pakket van de MySQL Administrator.
- Installeer het het mysql-administrator-1.1.2-win.msi bestand wat je gedownload hebt.
- Dubbelklikken op het .msi bestand of rechtklikken daarna kiezen voor Installeren.
- Klik op Next > bij het welkomstscherm.
- Ga accoord met de licentie voorwaarden.
- klik op Next >
- Ga accoord met installatie doel directorie
- klik op Next >
- Kies voor de Complete Setup Type.
- klik op Next >
- Bij het volgende scherm klik op Install
- Klik op Finish
Het installeren van alle pakketten is nu gebeurd. Nu het configureren.
- CONFIGURATIE APACHE
- De configuratie / aansturing van Apache binnen Windows gebeurt in 1 bestand.
- En dat is het bestand: httpd.conf
- Welke gevonden kan worden in de map: C:\Program Files\Apachegroup\Apache\conf\
- Open dit bestand met Windows kladblok.
- Je moet nu in bovenstaande bestand enkele dingen wijzigen en toevoegen.
- STAP 1
- Om sneller bij je documenten te komen, gaan we het standaard documenten pad aanpassen.
- Tevens zul je de map C:/htdocs nu moeten gaan aanmaken.
- Maak de volgende aanpassing in httpd.conf zoek de tekst eerst op en pas deze dan aan.
- De teksten in GROEN zijn de aanpassingen.
# # DocumentRoot: # The directory out of which you will serve your documents.
# By default, all requests are taken from this directory, but symbolic links and aliases may be used to point
# point to other locations.
#
# "C:/Program Files/ApacheGroup/Apache/htdocs" DocumentRoot "C:/htdocs"
Deze aanpassing moet je nog een keer doen.
#
# This should be changed to whatever you set DocumentRoot to.
#
#
# <Directory "C:/Program Files/ApacheGroup/Apache/htdocs">
<Directory "C:/htdocs">
Tevens zul je de map C:/htdocs nu moeten gaan aanmaken.
- STAP 2
- Maak de volgende aanpassing in httpd.conf.
- Hiermee vertel je Apache dat deze in een directorie op zoek moet gaan files met een bepaalde naam.
- Als een van deze files gevonden zijn, worden deze automatisch getoond.
#
# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index. Separate multiple entries with spaces.
#
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
- STAP 3
- Het .htaccess mechanisme ( gebruikersnaam en wachtwoord mechanisme ) binnen Apache zal niet werken daar
Windows niet met files wil werken waar geen naam aan verbonden zit.
- Als je goed leest is htaccess een extensie.
- Ik zelf gebruik dit mechanisme nooit op mijn test web server.
- STAP 4
- Ga nu helemaal naar het einde van de httpd.conf en voeg het volgende toe:
#################
# PHP Gegevens #
#################
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
- SLA HET BESTAND OP EN SLUIT KLADBLOK AF.
- Pas na de configuratie van PHP dien je Apache te herstarten.
- Apache kan anders niet alles vinden en zal dan weigeren te starten.
- DE CONFIGURATIE VAN PHP:
- Kopieer alle bestanden uit de map C:\phpdlls en alle dll's uit de map C:\phpsapi naar
- de map C:\php\
- Kopieer het bestand php.ini-recommended uit de map C:\php\ naar
- de map C:\windows\ en hernoem deze tot php.ini
- Open dit bestand php.ini met Windows kladblok.
- Je moet nu enkele dingen wijzigen.
- STAP 1
- Zoek naar het volgende in php.ini en pas het Windows pad aan.
- Zoek de tekst eerst op en pas deze dan aan.
- De teksten in GROEN zijn de aanpassingen.
- Er zijn meerdere PHP scripts welke met een relatieve padaanduiding werken.
- Dat passen we als eerste aan.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "path1;path2"
include_path = "./"
- STAP 2
- Pas het volgende aan als je over een SMTP mail server beschikt.
[mail function]
; For Win32 only.
SMTP = de_smtp_server_van_jouw_provider
Als je bijvoorbeeld een internet verbinding hebt bij @home, dan kun je hier mail invullen bij SMTP.
- STAP 3
- Zoek vervolgens naar de extension directorie.
- PHP kan dan eventueel te gebruiken dll's gebruiken.
- Maak de volgende aanpassing.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; directory in which the loadable extensions (modules) reside
; extension_dir = ./
extension_dir = "c:/php/extensions"
- STAP 4
- Om in de toekomst ook met dynamische plaatjes ( jpg en png NB geen GIF formaat binnen windows ) te
kunnen gaan werken dien je de volgende zin te de-commentariëren.
; Windows Extensions
; Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;
extension=php_mbstring.dll extension=php_gd2.dll
- STAP 5
- Om binnen PHP met sessies te gaan werken, alle content management systemen oftewel portalen werken
hier meer, dien je het pad naar de tmp directorie aan te geven.
- In dit geval is dit een door mij gemaakte directorie.
- C:\tmp\ Vergeet niet deze nu aan te maken.
; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
; session.save_path = /tmp
session.save_path = c:/tmp
- STAP 6
- Om variabelen door te geven is het noodzakelijk om de variabelen globaal te maken.
- Dit kan verkeerd op een productie server uitpakken.
- Op de meeste op het internet aangeboden pakketten zijn de variabelen globaal.
; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
; register_globals = Off
register_globals = On
- DE CONFIGURATIE VAN MYSQL:
- Nu komen we een probleem tegen.
- Het probleem ligt in het kunnen kiezen van de wachtwoorden.
- Bij het testen van dit artikel werden de ingevoerde wachtwoorden op geen enkele wijze geaccepteerd.
- De MySQL server 4.1 gaat hier anders mee om dan de oudere versies.
- DE FOUTMELDING WELKE HIERBIJ HOORT IS:
- # 1251 -
- Client does not support authentication protocol requested by server;
- Consider upgrading MySQL client.
- Voor dit probleem heb ik je net de MySQL Administrator laten installeren.
- Start deze Kijk in Start => Alle Programma's => MySQL
- VOER ALS GEGEVENS IN:
- Username: root
- Password: wachtwoord
- Hostname: localhost
- Port: 3306
- CONFIGURATIE MYSQL:
- Klik vervolgens op OK
- Klik op Startup Variables
- Vervolgens op het tabblad Security
- Vink aan Use old passwords
- De oude wachtwoorden worden wel begrepen.
- Klik vervolgens op Apply changes
- Klik op Service Control
- Klik op Stop Service
- We laten de server herstarten om de gewenste veranderingen effect te laten hebben.
- Om de server weer te laten starten klik Start Service
- Klik op User Administration
- Onder de User Accounts zie je de gebruiker root Klik hierop.
- Aan de rechterkant zie je de gegevens van de gebruiker root
- Voer het wachtwoord in bij Password: en herbevestig deze bij Confirm Password:
- Klik vervolgens op Apply changes
- We hebben nu de oude niet leesbare wachtwoorden vervangen door nieuwe
- wel leesbare wachtwoorden.
- Klik op Service Control
- Klik op Stop Service
- We laten de server herstarten om de gewenste veranderingen effect te laten hebben.
- Om de server weer te laten starten klik Start Service
- Sluit het programma nu af
Na de installatie volgt het testen
- JE BENT NU HELEMAAL KLAAR MET DE INSTALLATIE.
- Start nu het programma apachemonitor.exe Zie beneden voor de download link.
- Alle scripts zijn in de Dowload Sectie, Sub Map PHP te vinden onder de naam
webserver.zip
- Er verschijnt nu een rood, paars veertje met een wit rondje eronder en een groen driehoekje
- in de System Tray.
- Hier kun je desgewenst de Apache server mee herstarten of stoppen.
- Het is handig om deze tool in je opstart menu te plaatsen.
- Klik rechtsonder met de rechter muis toets op het Apache icoontje.
- Een veertje met groen driehoekje
- Klik op Open Apache Monitor
- Klik op Restart
Bij elke wijziging van de configuratie file van de webserver dien je dit te doen.
Tevens kun je dit doen als je webserver door onverklaarbare oorzaak is vastgelopen.
Om de Apache te testen, start je je web browser en tik je in: http://localhost/
Je krijgt nu een boodschap van Apache te zien en daarmee is meteen bevestigd dat de server werkt.
De boodschap is cryptisch:
Index of / Name Last modified Size Description
Apache/1.3.33 Server at localhost Port 80
Dit komt doordat er niets is om te laten zien. Alle toekomstige files gaan we plaatsen in C:\htdocs, want
dat is de fysieke plaats van de webpagina's. Werk je in een netwerk, deel dan deze folder. Binnen je netwerk
is dan de webserver zichtbaar onder zijn machinenaam. Zie voor deze naam Start => Configuratiescherm =>
Prestaties en Onderhoud => Systeem => Computernaam. Gebruik de weergegeven naam zonder de punt. Op een ander
computer dien je dan het volgende te typen. http://webserver/ Hierbij van uitgaan dat de naam van de web
server ook webserver is.
NU GAAN WE PHP TESTEN.
We gaan een klein script schrijven.
Alleen de volgende tekst is voldoende:
Schrijf het volgende over met Windows kladblok.
Alle scripts zijn in de Download Sectie, Sub Map PHP te vinden onder de naam
webserver.zip
Zet deze file in de root van de webserver. In mijn geval is dat C:\htdocs De naam van het script is phpinfo.php
Type nu in het adresveld achter het al bestaande adres http://localhost/phpinfo.php
Als alles werkt krijg je alle systeem variabelen van PHP te zien. Op Windows-Apache-PHP-MySQL dien je in
een door jou geschreven script alle backslashes in een pad opgave zoals: c:\directory\file.php om te zetten
naar slashes, dus c:/directory/file.php Probeer je een php script te starten vanuit Windows Explorer krijg
je een leeg scherm. Alleen via Internet Explorer zijn deze scripts te starten. En dan ook alleen nog maar
als de scripts de extensie php hebben.
Een html file met een php script werkt dus niet als deze de extensie
htm of html heeft. Binnen een web browser zal alleen tekst van het php script te zien zijn welke niet binnen
de php begin en eind tag staan. Kijk je nu in de bron, dan zie je de inhoud van het gehele script. PHP moet
dus wel weten dat hij aan het werk moet en dat ziet hij aan de extensie .php Als je binnen Internet Explorer
bij Beeld -> Bron de letterlijke PHP code kunt zien, is er iets mis met de server.
Check httpd.conf en php.ini
op type fouten en controleer de scripts op juiste extensies. .html en .php Bij een server 500 error of cgi
error ga in een dos box naar C:\php en type het volgende commando in. php.exe -i> c:\php\php.htm Er wordt nu
een C:\php\php.htm file gemaakt, welke je met Internet Explorer kunt oproepen. Krijg je hierbij een fout
melding, dan kan de foutmelding je hier bij helpen het probleem op te lossen.
NU HET TEST GEDEELTE VAN MYSQL.
Kopieer het volgende script en bewaar deze in de C:/htdocs/ directorie onder de naam mysql.php
<?php echo "<html>n<head>n<title>Alle
databases</title>n</head>n<body>nn ";
$host =
"localhost";
$inlognaam =
"root";
$wachtwoord =
"wachtwoord";
@mysql_connect($host,$inlognaam,$wachtwoord) or die("<font face=Arial
color=Navy><h3>Helaas, wij zij momenteel offline voor onderhoud ... (1)</h3></font>" );
$db_table = mysql_list_dbs (); for ( $i = 0 ; $i < mysql_num_rows ( $db_table ); $i ++){ echo( mysql_tablename ( $db_table , $i )); echo "n<br>n" ; } echo "n</body>n</html>n" ;
?>
Open je webbrowser en type http://localhost/mysql.php Als je geen fout hebt gemaakt, ziet je de volgende
namen:
mysql test
PhpMyAdmin
Om een database als MySQL te kunnen beheren, zijn diverse pakketten software op de markt. Zelf gebruik
ik altijd PhpMyAdmin van Tobias Ratschiller. Dit pakket is te vinden op sourceforge.net
Een handleiding, hoe wel beknopt, is in het pakket te vinden. Een Nederlands handleiding is te vinden op
de site van www.fransonline.nl. Klik
hier voor het
artikel.
Bij het exporteren van databases kunnen samengestelde tekens verkeerd geexporteerd
worden. Kies dan bij exporteren voor voorbeeld op scherm en knip en plak het. Een omweg, maar altijd beter
dan verkeerde rekens in de backup.
- BIJ PROBLEMEN.
- Het kan voorkomen dat het gewoon niet lukt. Opzich kun je dan weer overnieuw beginnen.
- Een aantal aandacht spunten hierbij:
- De-installeer Apache
- De-installeer MySQL Administrator
- De-installeer MySQL
- Om eventueel overgebleven services te verwijderen gebruik je het programma
- delsrv.exe
- Het gebruik is rechtlijnig. delsrv naam_van_de_service
- Voor Apache is dit delsrv apache
- Voor MySQL is dit: delsrv MySQL Let op hoofdletter gebruik
- Verwijder de map C:\php
- Verwijder php.ini Zie het gedeelte van de configuratie van PHP waar dit bestand staat.
- Verwijder de installatie map van Apache. C:\Program Files\Apache group
- Verwijder de installatie map van MySQL. C:\Program Files\MySQL
- Herstart dan de computer
- En begin opnieuw
- UITGEBREIDE INSTALLATIE VAN MYSQL
- In het begin van de installatie van MySQL werd gevraagd welk soort configuratie je
- wilde laten uitvoeren.
- Hieronder is de uitgebreide versie beschreven.
- Deze is dus al uitgevoerd.
- De Configuratie Wizard. de uitgebreide versie, voor wie geïnteresseerd is
- Klik op Next >
- Laat het aanvinkvakje aangekruist bij Detailled Configuration
- klik op Next >
- Aangezien er meerdere servers gaan draaien, kies ik in het volgende scherm
- Voor Server Machine
- klik op Next >
- Ik laat bij MySQl Server Instance Configuration de keuze bij Multifunctional Database
- klik op Next >
- Ik laat de InnoDB Tablespace Settings staan, zoals ze staan
- klik op Next >
- De vraag hoeveel tegelijktijdige verbindingen er tot stand worden gebracht blijft bij de
- voorgestelde keuze.
- Ik laat de Decision Support staan, zoals ze staan
- klik op Next >
- Uiteraard willen we een TCP/IP verbinding.
- Laat het aanvinkvakje aangekruist en laat het poortnummer zo staan ( 3306 )
- klik op Next >
- De voorgestelde karakterset is goed. laat de keuze voor Standard Charcter Set staan
- klik op Next >
- Beide aanvinkvakjes blijven aangevinkt in het volgende scherm.
- We willen dat MySQL als een Windows Service automatisch bij het opstarten van de machine
- opstart onder de naam MYSQL.
- Klik op Next >
- Nu moet je opletten. Er wordt nu om een wachtwoord voor de gebruiker Root gevraagd.
- Dit is de belangrijkste man voor MySQL.
- Standaard heeft root geen wachtwoord, wat uiteraard niet wenselijk is.
- Ik vul als wachtwoord " wachtwoord " in 2 keer.
- En vink NIET aan dat de gebruiker Root van buiten deze machine zich mag aanmelden.
- Hierdoor verminder je de kans op aanvallen van buitenaf.
- Ik wil ook geen anonieme gebruikers.
- Klik op Next >
- Klik op Execute in het venster welke alle gereedstaande taken weergeeft
- Er verschijnt een overzicht welke taken er uitgevoerd zijn.
- Er is geen foutmelding te zien.
- Klik op Finish
TOT ZOVER DIT ARTIKEL.
COPYRICHT © UBEL JAN VAN WIJHE VAN WIJHE CONSULTANCY |