Letztes Update: 2009-02-06
Switch Language/Wechsel die Sprache

eCSAMP-Setup


Einleitung

In diesem Kapitel beschreibe ich detailiert die Konfiguration von Apache2, PHP5 und MySQL 5.0.x auf Basis von eComStation (OS/2). Details zur Absicherung von Apache2 und den anderen Komponenten werden dabei nicht berücksichtigt.

Um es einmal vorweg zu nehmen: Bei mir läuft es nach dieser Anleitung.
Ich habe allerdings noch ein paar weitere Änderungen in der httpd.conf und den Extra Konfigurationsdateien sowie in der PHP.INI. Diese sind für meinen Einsatz nötig und nicht für den hier vorgestellten Anwendungszweck!

Eingesetzte Softwarepakete


Installationspakete

Fangen wir mal ganz vorne an und zwar mit den Paketen. Ich habe die folgenden *.ZIP Pakete installiert.

Apache 2.2.3b3:
http://download.smedley.info/httpd-2.2.3-os2-b3.zip
http://smedley.info/httpd-2.2.3-os2-b3fix1.zip

PHP 5.1.5b1:
http://download.smedley.info/php-5.1.5-os2-b1.zip
http://download.smedley.info/php-5.1.5-os2-b1fix1.zip
http://download.smedley.info/modphp5fix.zip (Paul hat diese Paket auf der Website unter Apache abgelegt, aber es gehört zu PHP)

phpMyAdmin 2.8.2.4:
http://switch.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.8.2.4.zip

MySQL 5.0.24b2:
http://download.smedley.info/mysql-5.0.24-os2-b2.zip

Weitere Anforderungen (hoffe nichts vergessen zu haben):
ftp://ftp.netlabs.org/pub/gcc/libc-0.6.1-csd1.zip


Entpacken der Archive

Auf die Konfiguration gehe ich erst im nächsten Schritt ein. Hier beschreibe ich nur wo die einzelnen Dateien liegen sollten (besonders auf die Fixes bezogen).

Generelle Info:
Bei mir liegt PHP5 und Apache2 unterhalb von "D:\OS2TOOLS\INET\WEBSERVER\APACHE_SERVER".
Damit liegt alles vom Apache2 in "D:\OS2TOOLS\INET\WEBSERVER\APACHE_SERVER\Apache2" und alles von php in "D:\OS2TOOLS\INET\WEBSERVER\APACHE_SERVER\php5".

Apache 2.2.3b2:
Das Basispaket des Apache2 (hier: httpd-2.2.3-os2-b3.zip) entpacken. Das Archiv erstellt dabei automatisch das Verzeichnis "Apache2". Dann die Korrektur (httpd-2.2.3-os2-b3fix1.zip) in das Verzeichnis ".\Apache2\bin" entpacken oder das Archiv so entpacken und den Inhalt (in diesem Fall ist es nur die "httpd.dll") anschließend manuell nach ".\Apache2\bin" verschieben.

PHP 5.1.5b1:
Zunächst das Basispaket von PHP5 (hier: php-5.1.5-os2-b1.zip) entpacken, wobei automatisch das Unterverzeichnis "php5" erstellt wird.
Dann die Korrektur (php-5.1.5-os2-b1fix1.zip) in das soeben erstellte Verzeichnis ".\php5" entpacken oder die Datei wie zuvor so entpacken und den Inhalt (hier ist es nur die "php5.dll") manuell nach ".\php5" verschieben.
Als letztes noch das Archiv mit dem korrigierten Apache2 Modul für PHP5 ("modphp5fix.zip") in das Verzeichnis ".\php5\Apache2" entpacken oder den Inhalt nach dem entpacken dorthin verschieben.
Die ebenfalls in diesem Archiv enthaltene "libc062x.dll" muss in einem Pfad abgelegt sein das durch "LIBPATH=.." (CONFIG.SYS) oder "SET BEGINLIBPATH=..." erreichbar ist.
Da in Zukunft sicher auch noch andere Programme diese DLL benötigen werden, macht es vielleich Sinn sie gleich nach ".\OS2\DLL" zu verschieben.
Den Inhalt des Verzeichnisses ".\php5\Apache2" (auf jeden Fall die "modphp5.dll"; wenn man die "libc062x.dll" z.B. schon nach ".\OS2\DLL" kopiert hat braucht man sie nicht zu kopieren) kopieren wir auf jeden Fall nach ".\Apache2\modules".

phpMyAdmin 2.8.2.4:
Die Daten des Webservers liegen bei mir unter "d:\httppath" (wieder wegen dem einfachen Backup). Generell ist phpMyAdmin also in einem Verzeichnis unterhalb des DocumentRoot Ordners zu entpacken.

MySQL 5.0.24b2:
MySQL in einem beliebigen Verzeichnis entpacken.


Konfiguration

Jetzt kommt der spannende Teil. Die Pfade hier beziehen sich auf meine Konfiguration und sind deshalb logischerweise nur als Beispiel gedacht.

Apache 2.2.3b3:
Zunächst wird die "startup.cmd" in ".\Apache2" modifiziert. Als Beispiel dient meine Datei. In der Regel muss nur der "SET BEGINLIBPATH=..." Eintrag mit den korrekten Pfaden gefüttert werden.

startup.cmd
@echo off
rem adjust as necessary
SET LIBPATHSTRICT=T
SET BEGINLIBPATH=d:\os2tools\inet\webserver\Apache_Server\Apache22\bin;d:\os2tools\inet\webserver\Apache_Server\Apache22\modules;d:\os2tools\inet\webserver\Apache_Server\PHP5;

bin\httpd -d . 2>&1

Dann folgt die änderung der Apache2 Konfiguration. Als erstes wird die mitgelieferte Beispiel Datei im Verzeichnis ".\Apache2\conf" kopiert (xcopy httpd.conf.sample httpd.conf). Die httpd.conf wird dann editiert.

HINWEISE:
Im Folgenden werde ich einige hinzuzufügende Zeilen oder auszukommentierende Zeilen (Kommentarzeichen ist die Raute ("#")) aufführen.
Da es Sinn macht die Zeilen dort hinzuzufügen wo es Sinn macht, bietet es sich an nach dem ersten Wort der jeweiligen Zeile zu suchen (z.B. bei der "AddType" Zeile für die Aktivierung der Erkennung von PHP-Code in *.html und/oder *.php Dateien).
Wenn im folgenden eine Zeile mit einer Leerzeile vom nächsten getrennt ist, ist es auch in der httpd.conf nicht direkt untereinander.
Wenn es sich um einen Block handelt der geändert wurde, dann gibt es keine Leerzeile! Die vollständigen Pfade "d:/..." sind wieder entsprechend an die eigene Struktur anzupassen!

Hier nun Teile der httpd.conf die anzupassen sind:
ServerRoot "D:/OS2TOOLS/INET/WebServer/Apache_Server/Apache2"

LoadModule php5_module modules/modphp5.dll

ServerName mein.server.de:80

DocumentRoot "d:/httppath"

#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "/apache2/htdocs">
<Directory "d:/httppath">

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
# DirectoryIndex index.html
DirectoryIndex index.html index.php
</IfModule>

# PHP
AddType application/x-httpd-php .htm .html .php
AddType application/x-httpd-phps .phps

PHP 5.1.5b1:
Für PHP5 muss eine der mitgelieferten Beispielkonfigurationen ("php.ini-dist" oder "php.ini-recommended") nach "php.ini" kopiert, angepaßt und schließlich in das Verzeichnis "\MPTN\ETC" des Bootlaufwerkes kopiert/verschoben werden. In der PHP.INI wird das ";" als Kommentarzeichen verwendet. Beginnt eine Zeile damit wird der folgende Text ignoriert.
Einige Parameter müssen also durch das Entfernen des ";" aktiviert werden!

Angepaßt werden müssen:

phpMyAdmin 2.8.2.4:
Für die Installation nach der Beschreibung in der Documentation.html vorgehen. Um es etwas abzukürzen hier eine fertige Konfigurationsdatei (config.inc.php) ohne besondere Schutzmaßnahmen (siehe "auth_type") für den Zugriff auf phpMyAdmin. Die Datei wird direkt in phpMyAdmin Verzeichnis (phpmyadmin-2.8.2.4) abgelegt (in meinem Fall "d:\httppatch\phpmyadmin-2.8.2.4")

config.inc.php

<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 2.8.2.4 setup script by Michal äŒihař <michal@cihar.com>
* Version: $Id: setup.php,v 1.23.2.10.2.4 2006/08/22 17:36:34 lem9 Exp $
* Date: Mon, 18 Sep 2006 16:40:23 GMT
*/

/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';

/* End of servers configuration */
?>

MySQL 5.0.24b2:
Die Installation muss entweder anhand der Readme.os2 durchgeführt werden oder mit meinem REXX Skript und einer manuellen Anpassung der my.cnf (diese MUSS in \MPTN\ETC gespeichert werden).
Bei meiner Variante kann man sich ein paar Verrenkungen (suche von SED und einer Unix Shell) ersparen.

my.cnf
[client]
compress
user=root
[mysqld]
user=mysql
basedir=D:/OS2TOOLS/Datenbanken/mysql5
datadir=E:/DBDATA/MySQL5Data

basedir = Das Basis Installationsverzeichnis der MySQL5 Installation.
datadir = Das Verzeichnis wo die MySQL5 Datenbanken liegen.
Ich trenne es immer wegen dem leichteren Backup (mehrer Datenbanken haben unterhalb von "e:\dbdata" ihre Daten abgelegt).

Mein REXX-Skript für die Erstellung der MySQL 5.0.xx Tabellen sollte hier zu finden sein:
REXX-Skripte

Das ZIP-Archiv in das Verzeichnis ".\mysql5\bin" entpacken und wie folgt aufrufen:

Im ersten Fall wird das Datenverzeichnis für die Datenbanken im Installationsverzeichnis unter "data" (.\mysql5\data) erstellt und im zweiten Fall werden die Datenbanken im Verzeichnis "d:\dbdata\mysql5data" abgelegt.
Dieser Pfad muss mit dem Wert für "datadir" in der my.cnf übereinstimmen. Wenn das nicht der Fall ist findet MySQL (mysqld.exe) das Verzeichnis nicht, es sei den man gibt es über Parameter beim Aufruf mit.

Das sollte alles sein.

Den MySQL Daemon startet man mittels ".\mysql5\bin\mysqld.exe".
Um zu prüfen ob es klappt einfach den MySQL Client aufrufen ".\mysql5\bin\mysql.exe".
Der MySQL Client sollte sich mit "mysql> " und einem blinkenden Cursor melden.
Wenn nicht dann gibt es eine entsprechende Fehlermeldung. Verlassen kann man den MySQL Client durch Eingabe von "\q" (ohne die Anführungszeichen) und einem ENTER um den Befehl auszuführen.


Start der Programme

Um den Apache2 zu starten das angepaßte Startskript im Apache2-Basisverzeichnis aufrufen (".\Apache2\startup.cmd"). Für MySQL ist wie zuvor schon erwähnt der MySQL Daemon zu starten (".\mysql5\bin\mysqld.exe").


Abschlusstest

Eigentlich sollte man über die IP des Rechners (als Beispiel "192.168.27.1") nun in der Lage sein die Installation zu testen. Hat man phpMyAdmin im sogenannten Wurzelverzeichnis für HTML-Dokumente (DocumentRoot - siehe "httpd.conf" entpackt), kann man phpMyAdmin wie folgt aufrufen:
http://192.168.27.1/phpmyadmin-2.8.2.4

Jetzt kann man wie in der Anleitung beschrieben auch leicht die Datenbank "phpmyadmin" anlegen/aktualisieren indem man über den Webbrowser in der phpMyAdmin-Oberfläche ("SQL") die passende "*.sql" Datei hochlädt. Diese wird dann automatisch ausgeführt und die Datenbank kann dann aus der DropDown-Liste ausgewählt werden.

Um die PHP Funktionalität einfach zu testen kann man die folgende HTML-Datei (hier "testit.html" genannt) mit diesem PHP-Code anlegen.

testit.html
<html>
<head>
<title>PHP-Test </head>
<body>
<?php phpinfo(); ?>
</body>
</html>

Die Datei wird hier als Beispiel wieder im Wurzelverzeichnis für HTML-Dokumente gespeichert. Aufgerufen wird sie dort über den folgende URL:
http://192.168.27.1/testit.html

Fehler werden in der Logdatei des Apache2 (siehe ".\Apache2\logs\") gespeichert.
Ein möglicher Fehler, den ich zunächst hatte war, das die PHP-Module für den Datenbankzugriff nicht geladen werden konnten. Ich hatte in der PHP.INI den Parameter "extension_dir" zunächst nicht gesetzt und wurde an der falschen Stelle gesucht, die in der Logdatei angezeigt wird.

So ich hoffe das war ausführlich genug damit es jeder hinbekommt und ich hoffe ich habe keinen Fehler eingebaut (bzw. etwas wichtiges weggelassen).

Juergen

Zurück zum Seitenanfang

Menü

Spenden!

Sie können die Entwicklungen durch eine »Spende unterstützen!

PayPal

Werbung