U bent hier

Onder Windows

logo

 

Webserver; de Installatie.

 

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 officiële software.

De sofware is gedistribueerd onder verschillende licenties, maar je mag deze wel gebruiken.
(lees deze licentie voorwaarden wel)

Let wel, deze handleiding is niet bedoeld voor productie servers.

 

 

logo

 

Benodigde Software

Apache Webserver

Download de software van http://archive.apache.org/dist/httpd/binaries/win32/
De laatste 2.2.XX versie is 2.2.29
Download hier het apache_2.2.9-win32-x86-no_ssl-r2.msi bestand van.

PHP scripttaal

Download de software van deze link
De laatste 5.XX.XX versie is 5.2.6
Download hier het PHP 5.2.6 zip package bestand van.

MySQL Database

Download de software van deze link
De laatste 5.1.XX versie is 5.1.26
Download hier het mysql-5.1.26-rc-win32.zip bestand van.

MySQL Administrator

Tevens ga ik nog een hulp programma gebruiken. ( De MySQL Administrator )
Download de software van deze link
De laatste 5.0.XX versie is 5.0-r12
Download hier het mysql-gui-tools-5.0-r12-win32.msi bestand van.

Gebruikte software

  • Apache 2.2.29
  • PHP 5.2.6
  • MySQL 5.1.26
  • MySQL Administrator 5.0

 

Het begin

Mijn installatie omgeving:

  • mijn besturingssysteem is Windows XP (SP3) ( en de rest van de updates )
  • Het uitpak programma is 7-zip

Uitgangssituatie:

  • Ik ga er vanuit dat je de webserver gaat installeren op C:\ .
  • Schakel eventuele firewall's uit ( Microsoft (XP) of van derden).
    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 tijdsinvestering 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.

  1. Apache
  2. Php
  3. MySQL
  4. MySQL Administrator

Installatie Apache


Start het .msi bestand wat je gedownload hebt.
( Dubbelklikken op het .msi bestand )

Volg de installatie van Apache, deze wijst zich vanzelf.
Hierbij een overzicht.

  • Klik op   Next >   bij het welkomstscherm.
  • Accepteer de "Apache License" en klik op Next >.
  • Lees de "Read Me First" en 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 Custom Setup Type en klik op Next >
  • Installeer Apache op C:\Program Files\Apache Software Foundation\Apache2.2\ en klik op OK
  • Klik op Next >
  • Klik op Install
  • Je zult nu even moeten wachten tot alles geïnstalleerd is.
  • Klik op Finish


Zo, deze is geïnstalleerd.

Je kunt nu zien dat Apache actief is.
Rechtsonder in de systeem balk zie je nu een paars veertje met een groen driehoekje erin.
Dit is het icoontje voor apachemonitor.exe.
Een applicatie welke de status van de Apache webserver aangeeft.
Groen staat voor actie en rood voor inactief.

Tevens kun je zien dat dit onderdeel in de opstarten groep is geplaatst.
Bij het opnieuw opstarten van de computer gaat dit automatisch mee.

Installatie PHP

De installatie van PHP moet je handmatig doen.

Maak in de map   C:\  een nieuwe map aan, genaamd   C:\php
Pak het   php-5.2.6-Win32.zip  bestand uit in een tijdelijke map en kopieer deze inhoud naar   C:\php

Nog 1 stap.
Kopieer het bestand libmysql.dll uit   C:\php   naar   C:\Program Files\Apache Software Foundation\Apache2.2\bin\
Scheelt je straks een hoop foutmeldingen.

Installatie MySQL

Pak het   mysql-5.1.26-rc-win32.zip  bestand uit in een tijdelijke map.
Start het   setup.exe   bestand wat je net hebt uitgepakt.

  • Klik op   Next >   bij het welkomstscherm
  • Veelal kies ik voor de   Custom Setup Type   en klik op   Next >
  • Kies bij Install to voor de D schijf
  • De rest blijft ongewijzigd
  • Klik op   Next >
  • Bij het volgende scherm klik op   Install
  • Er wordt het een en ander geinstalleerd
  • 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 aanvinkvakje aangekruist en klik op   Finish
  • Nieuwe vensters verschijnen.
    De Configuratie Wizard.
    Klik op   Next >
  • Kruis het aanvinkvakje bij   Detailed Configuration   en klik op   Next >
  • Kies voor   Server Machine   bij server type en klik op   Next >
  • Kies voor   Multifunctional Database   bij database usage en klik op   Next >
  • Klik op   Next >   bij InnoDB Tablespace Settings
  • Ga accoord met Decision Support en klik op   Next >   bij concurrent connections
  • Klik op   Next >   bij networking options
  • Ga accoord met Standard Character Set en klik op   Next >   bij default character set
  • Ga accoord met het volgende scherm en klik op   Next >   bij Windows options
  • 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 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-gui-tools-5.0.r12-win32.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 en klik op   Next >
  • Verander het installatie doel directorie naar C:\Program Files\MySQL\MySQL Tools for 5.0\ en klik op   OK
  • Bij het volgende scherm klik op   Next >
  • Kies voor de   Complete Setup Type   en 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 dit bestanC:
httpd.conf

Welke gevonden kan worden in de map:
C:\Program Files\Apache group\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 fysiek 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 to other locations.
#
# "C:/Program Files/Apache Group/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/Apache Group/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 hij/zij in een directorie op zoek moet gaan files met een bepaalde naam.
Als één van deze gevonden is, dient deze automatisch getoond te worden.

#
# 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 webserver.

Stap 4
Ga nu helemaal naar het einde van   httpd.conf   en voeg het volgende toe:

##################
# PHP 5 Gegevens #
##################

Loadfile "C:/php/php5ts.dll"
LoadModule php5_module "C:/php/php5apache2_2.dll"
PHPIniDir "C:/php/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

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

Configuratie PHP

Kopieer alle bestanden uit de map C:\php\ext
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/"

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 zinnen te de-commentariëren.
Tevens dienen we de connectie naar MySQL en Sqlite kunnen leggen

; Windows Extensions
;
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.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"

Configuratie 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 5.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  
  PassworC:     wachtwoord  
  Hostname:     localhost  
  Port:     3306  

 

  • 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   wachtwoord   in bij   PassworC:
    en herbevestig deze bij   Confirm PassworC:
    Klik vervolgens op   Apply changes
    We hebben nu de oude (niet leesbare wachtwoorden ) vervangen door nieuwe (wel leesbare).
  • 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 .
Er verschijnt nu een rood, paars veertje met een wit rondje eronder en een groen driehoekje in de Systemtray.
Hier kun je desgewenst de Apache server mee herstarten of stoppen.
Deze is al in je opstartmenu te geplaatst.

  • Klik rechtsonder met de rechtermuistoets 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 /

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 webserver 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 te downloaden op webserver.zip

<?php
phpinfo
();
?>
phpinfo.php


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 typefouten en controleer de scripts op juiste extensies. (  .html .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.html  file gemaakt, welke je met Internet Explorer kunt oproepen.
Krijg je hierbij een foutmelding, dan kan de foutmelding je hierbij 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>\n\n ";

$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";

?>

mysql.php


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, hoewel 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.

N.B.
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 aandachtspunten 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

 

Andere indelingen / andere harde schijven?

Uiteraard kun je deze installatie op een dan de C:\ schijf uitvoeren.
In principe kun je alles op bijvoorbeelde de D:\ schijf zetten.
In dat geval dien je alles wat nu C:\ is in D:\ veranderen.

De scripts

Alle scripts zijn hier te downloaden op webserver.zip
Zij bevatten de volgende onderdelen

  • httpd.conf -> C:/program files/apache group/apache/conf/
  • php.ini -> C:/windows/
  • config.inc.php -> C:/phpmyadmin/


Tot zover dit artikel.

Tot ziens,

Ubel Jan van Wijhe
van Wijhe Consultancy