Unter Windows, mit PHPTriad
Es gibt
mehrere Projekte,
die eine Zusammenstellung von PHP, MySQL und Apache für Windows vorkonfigurieren.
Mit dieser Zusammenstellung kann man sich Konfigurationsaufwand sparen,
aber z.B. eine neue PHP-Version sind unter Umständen nicht so leicht einzuspielen wie
selbst-eingebundene.
In
PHPTriad (ca. 14MB), geht das aber
auch relativ leicht indem man das php-Verzeichnis löscht und dann die Original-PHP-Version von php.net
dorthin installiert.
Unter Windows, mit MySQL
Ohne PHPTriad ist der Konfigurationsaufwand augenfällig - dabei legt PHP
dem Konfigurierenden weniger Steine in den Weg als die Zusammenarbeit mit
Datenbank, ODBC-Treibern und Webserver. Dennoch lohnt sich die Sache,
denn wer mit PHP erstmal richtig loslegt ist wird den Konfigurationsaufwand
schnell vergessen haben.
Die benötigten Dateien
Der Apache-Server für Window (no_src, MSI für Microsoft-Installer), ca. 2MB
PHP 4 für Windows, ca. 1MB
MySQL Standard binary (tarball) distributions; Windows (Intel), ca. 9,5Mb
(optional)
MyODBC, ODBC-Treiber für mySQL, ca. 1,7Mb
(Empfehlung)
PhpMyAdmin: Tool (in PHP geschrieben), das es erlaubt, neue Tabellen anzulegen, anzusehen, zu löschen u.m., ca. 100kb
(Empfehlung)
MySQL Front: in etwa PhpMyAdmin als Exe, allerdings sind die Eingabemöglichkeiten für neue Datensätze besser gelöst, ca. 1Mb
Installationsverlauf
Apache zum Laufen bringen
Installieren Sie den Apache-Server.
Wenn Sie diesen in einer Eingabeaufforderung aufrufen, sollten Sie die Meldung "Apache.Exe: cannot determine local host name"
erhalten. Um diesen "Fehler" zu beheben, editieren Sie bitte im Apache\Conf - Verzeichnis die httpd.conf. Suchen Sie nach
der Zeile
#ServerName new.host.name
und ändern Sie sie in
ServerName new.host.name
Auf deutsch: machen Sie aus der auskommentierten Zeile wieder eine
normale Zeile der Konfigurationsdatei.
Mit der geänderten Konfigurationsdatei lässt sich Apache dann auch starten.
(das Fenster mit der Ausgabe Apache/1.3.12 (Win32) running... bitte nicht
schließen). Beenden lässt es sich nebenbei entweder mit STRG+C oder
(sauberer) mit dem Aufruf von apache -k shutdown (z.b. aus einer anderen
Eingabeaufforderungsbox).
PHP zum Laufen bringen
Entpacken Sie PHP z.b. in (ein neu erstelltes) Apache-Unterverzeichnis
PHP.
Benennen Sie php.ini-dist um in php.ini und kopieren Sie diese Datei
in ihr Windows\System Verzeichnis.
Beachten Sie dabei, dass der "session.save_path" auf dem Verzeichnis
/tmp liegt, sollten Sie also kein Verzeichnis C:\tmp haben (gesetzt der
Fall Sie installieren in C) können Sie nichts mit Sessions anfangen,
so lange Sie es nicht angelegt oder den session save path geändert haben.
Sie können jetzt PHP.exe aufrufen, es sollte ohne Ausgabe einfach nur
auf Eingaben warten. Auch PHP kann man mit STRG+C "schießen". PHP muss
noch in die Konfigurationsdatei von Apache eingebunden werden, das laufende
PHP also bitte wieder beenden.
Suchen Sie in der apache\conf\httpd.conf nach "addtype" und fügen Sie
hinter dem auskommentieren AddType die Zeilen ein
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
Diese Zeile sagt Apache, dass .php-Dateien vom Typ application/x-httpd-php4
sind.
Jetzt brauchen wir noch ein ScriptAlias mit der Zeile
ScriptAlias /php/ "C:/Apache/php/"
das PHP sagt, dass der Pfad C:\Apache\php\ (sofern das Ihr Installationsverzeichnis ist) dateien enthält, die ausgeführt werden
müssen, um Skripte zu behandel und
den PHP-Typ verknüpfen wir mit der Zeile Action application/x-httpd-php /php/php.exe
mit PHP. (im Skriptverzeichnis /php/ also in c:\apache\php)
Wir brauchen jetzt schnell eine Testdatei um PHP zu testen, z.b.
<html>
<?
echo "hello world";
?>
</html>
Als Dateiname wählen wir test.php und speichern es im Apache\htdocs Pfad.
Falls Sie offline sind, erzählen Sie Ihrem Browser jetzt etwas anderes: für den folgenden Aufruf müssen sie nicht zwangsläufig
eine Internetverbindung herstellen, auch wenn einige Browser Sie das glaubend machen sollen.
Unter dem Internet Explorer entfernen Sie z.b. das Häkchen Offlinebetrieb.
Um Apache zu testen rufen Sie jetzt in Ihrem Web-Browser die Adresse http://localhost auf, es sollte eine Ausgabe kommen,
die mit "Es klappt! Der Apache Web-Server ist auf dieser Web-Site installiert! " anfängt.
Das ist Ihr Server. Die Adresse http://localhost/test.php sollte dann hello world anzeigen.
Falls das nicht klappt, sind die Apache-Logdateien in Apache\Logs oft eine wertvolle Hilfe (diese werden teilweise erst nach
beenden von Apache geschrieben). Denken Sie bitte daran, nach jeder Veränderung in
den \conf-Dateien Apache zu beenden und neu zu starten damit die Änderungen wirken können.
Eine "korrekte" conf-datei für Apache 1.3.12 im Verzeichnis c:\temp\apache und PHP 4.02 im Verzeichnis c:\temp\apache\php
finden Sie
hier.
mySQL zum Laufen bringen
Allerdings ist das nicht der eigentliche Nutzen von PHP, jetzt installieren wir die Datenbank.
Entpacken und installieren Sie mySQL (Am besten benutzen Sie das vorgegebene Verzeichnis
c:\mysql\).
Sollten Sie in ein anderes Verzeichnis installieren müssen Sie die "basedir" in
c:\windows\my.ini anpassen.
Starten Sie winmysqladmin.exe (im Verzeichnis bin)
und geben Sie einen Benutzernamen und Passwort ein. Eine grüne
Ampel in der Taskleiste zeigt ein laufendes MySQL.
Klicken Sie auf die Ampel und auf "Show Me", wählen Sie den Reiter "Databases" und
klicken Sie rechts auf den als "Databases" eingezäunten bereich, wählen Sie Create
Database und als Namen z.b. testdb.
Damit haben wir ein laufendes PHP auf einem laufenden Webserver mit einer laufenden
Datenbank, die wir mit den
MySQL-Befehlen in PHP schon ansprechen
könnten.
ODBC
ODBC zum Laufen bringen
Jetzt kommt das optionale ODBC (Ansonsten greifen Sie bitte auf die Befehle in
der kleinen MySQL-Referenz zurück): entpacken und
installieren Sie myODBC. In Start/Einstellungen/Systemsteuerung/ ODBC Datenquellen
wählen Sie jetzt bitte hinzufügen, mySQL. Was kommt, sollten Sie ausfüllen wie im Bild
rechts.
Windows DSN Name ist die Angabe wie Sie die Datenbank ab jetzt unter
ODBC ansprechen können (dieser Namen muss nicht mit mySQL database-name
übereinstimmen),
User und Passwort richten sich natürlich nach Ihrer mySQL-Installation.
ändern wir jetzt test.php in Richtung ODBC:
<html>
Starting PHP4....
<?php
$dbh = odbc_connect('testdb', 'aname', 'apwd', SQL_CUR_USE_ODBC);
echo "Connected to db $dbh<br/>";
$query = "create table dtab (chk integer, chkchr char(20))";
$res = odbc_exec($dbh, $query);
echo "table created<br/>";
$query = "insert into dtab values (42,'stringtotest')";
$res = odbc_exec($dbh, $query);
$query = "select * from dtab";
$res = odbc_exec($dbh, $query);
echo "number of rows:".odbc_num_rows($res)." <br/> ";
for ($i=0; $i<odbc_num_rows($res); $i++)
{
$result= odbc_fetch_row($res, $i);
$st= odbc_result($res, 'chk');
echo "$i:res=$st <br/>";
}
odbc_close_all();
?>
... PHP4 concluded.
</html>
Die Ausgabe
Starting PHP4.... Connected to db 1
table created
number of rows:1
0:res=42
... PHP4 concluded.
Zeigt, dass alles funktioniert (Eine Tabelle mit der Spalte Res wird angelegt,
eine Zeile mit dem Wert 42 eingefügt und dei gesamte Tabelle selektiert und
ausgegeben: Die 0te Zeile enthält tatsächlich den Wert 42 für den Integer Res.).
Bitte entfernen Sie nicht winmysqladmin aus dem Autostart,
mySQL muss jedemal wenn ein Datenbankzugriff erfolgen soll,
gestartet sein, ebenso wie Apache.
Die empfohlenen Dateien installieren
PhpMyAdmin entpacken Sie einfach in ein Unterverzeichnis Ihres htdocs-Verzeichnis Ihres Webservers
und rufen die index.php3 im entsprechenden Verzeichnis auf.
MySQLFront ist eine "normales" Programm, entpacken Sie es einfach in das gewünschte Zielverzeichnis.