AMIGA-Magazin · Ausgabe 5/04 · Datenbank: MySQL 4

Aktuelles Heft 5/04

Daten-Jongleur

Apache, PHP und MySQL ist eine beliebte Kombination zum Entwickeln dynamischer Webseiten. Die Einrichtung und Konfiguration von Apache und PHP war bereits Gegenstand von Amiga-Magazin-Artikeln. Lesen Sie mehr über den Amiga-Port von »MySQL 4«.

von Martin Steigerwald

Lokal:
phpBB 2.0.6 läuft auf einem 68060er-Amiga mithilfe von AmigaApache, MySQL und PHP.

MySQL ist ein weit verbreiteter Datenbankserver, der als Datenjongleur für PHP-Programme gut geeignet ist. Viele Webhosting-Provider bieten die bewährte Kombination von Apache, PHP und MySQL an. Sie erlaubt, Foren, Shop-Systeme, Gästebücher usw. auf der eigenen Webseite laufen zu lassen.Um eine auf PHP/MySQL basierende Webanwendung auszuprobieren, an die eigenen Bedürfnisse anzupassen oder gar ein eigenes PHP-Programm zu entwickeln, ist auf einem Amiga mit der Kombination Apache, PHP und MySQL möglich.

Die Installation und Konfiguration von Apache und PHP ist bereits in früheren Artikeln beschrieben [1]. Ohne MySQL oder eine andere Datenbank wie PostgresSQL laufen jedoch viele PHP-Anwendungen nicht und beim Programmieren von PHP-Anwendungen, die Daten verarbeiten, stösst man ohne Datenbank schnell an Grenzen. Da empfiehlt sich, neben Apache und PHP gleich auch noch MySQL zu installieren. So ergibt sich ein vollständiges AmigaApache-, MySQL- und PHP-System. Man kann dann von einem AAMP-System sprechen ­ analog zu LAMP für Linux oder WAMP für Windows.

Die MySQL-Datenbank
Für AmigaOS gibt es Portierungen der MySQL-Versionen 3.23.51 und 4.0.4. »MySQL 4« ist laut Aussage der Entwickler in einigen Bereichen stark beschleunigt worden (s. Kasten »Neue Features von MySQL 4«). Dennoch kann es Sinn machen, stattdessen die Version 3.23.51 zu verwenden, die mit den meisten PHP-Anwendungen ebenfalls funktioniert. Der MySQL-Server ist in der Version 4 mit knapp 3.2 MByte mehr als doppelt so groß wie die Version 3.

MySQL benötigt für Amiga-Verhältnisse relativ viel Resourcen. Selbst auf einem Amiga mit einem 68060-Prozessor ist MySQL relativ behäbig. Es kann 5 bis 10 Sekunden dauern, bis eine Webseite mit PHP mithilfe von Datenbankzugriffen aufgebaut ist, wie sich beim Forum »phpBB« zeigt. Es ist damit für lokale Tests noch einsetzbar. Als Webserver fürs Internet ist das jedoch recht langsam, zumal es noch langsamer werden dürfte, wenn mehrere Leute gleichzeitig zugreifen.

Es empfiehlt sich also, MySQL mindestens auf einem 68060 Prozessor laufen zu lassen. Schneller ist es, einen unter »Amiga Forever«, »Linux UAE«, »Win UAE«, Amithlon oder AmigaXL emulierten Amiga zu verwenden. Ausreichend RAM sollte auch vorhanden sein: Das komplette »MySQL 3«-System belegt direkt nach dem Start knapp 3.5 MByte vom Hauptspreicher und die Version 4 sogar etwa 5 MByte RAM.

Online-Shop:
Auch das bekannte Shop-System 2"osCommerce" läuft, wenn auch langsam.

Der MySQL-Amiga-Port von »SixK« benötigt die »ixemul.library« in der Version 48.2. Mit der Version 48.0 hängt MySQL meist innerhalb einer Minute nach der ersten Benutzung und ein Reset ist notwendig. Da sich die Amiga-Portierung des MySQL-Servers nach der ersten Verwendung auch nicht mehr beenden lässt, hilft dann nur noch ein Neustart.

Die Installation
Die Installation von MySQL ist relativ leicht. Installieren Sie die für den Prozessor Ihres Amiga geeignete Version der »ixemul.library« nach »Libs:« oder falls Sie GeekGadgets installiert haben nach »GG:Sys/Libs«. Die GCC-Entwicklungsumgebung für »GoldED Studio AIX« enthält ebenfalls eine GeekGadgets-Installation. Stellen Sie auf jeden Fall sicher, dass nicht noch eine ältere Version der Bibliothek in einem der Verzeichnisse, auf das die »LIBS:«-Zuweisung verweist, vorhanden ist. Mit

Version ixemul.library FULL

stellen Sie fest, welche Version der »ixemul.library« in den Speicher geladen ist oder wird. Die sollte die Version 48.2 vom 6. April 2001 sein. Die 68k-Version der »ixemul.library« läuft weder unter MorphOS noch unter AmigaOS 4. Für MorphOS gibt es eine native Version der »ixemul.
library« (s. »Software«). Eine native Portierung für AmigaOS 4 existiert bislang nicht. Die »ixemul«-Bibliothek macht Annahmen über die interne Implementation der Funktionen zum Wechseln des Task-Kontextes und das Stacklayout, die so nur auf das Exec von AmigaOS 2.x/3.x und die Prozessoren 68000 bis 68060 zutreffen. Eine native Version müsste Annahmen über das Stacklayout von AmigaOS 4 machen. Dieses jedoch ist intern und wird sich mit hoher Wahrscheinlichkeit ändern. So bleibt nur zu hoffen, dass MySQL, Apache und PHP nativ auf AmigaOS 4 umgesetzt werden, ohne ixemul zu verwenden. Eine native C-Bibliothek mit den ISO-C-, POSIX-, SUS-, BSD-, SYSV-Funktionen, die sich ohne Hacks in AmigaOS 4 verwenden lassen, gibt es bereits.

Nach der Installation der »ixemul.library« entpacken Sie entweder das Archiv »MySqld-v4« für die Version 4.0.4 oder »Mysqld-v3.lha« für die Version 3.2.48. Für die 3er-Version von MySQL gibt es noch ein Update auf die Version 3.23.51. Kopieren Sie einfach den MySQL-Server »mysqld« aus dem Archiv »Mysqld-v3-upd.lha« in das »bin«-Verzeichnis des soeben entpackten MySQL-3-Hauptarchives.

Um MySQL zu starten führen Sie dann einfach das Shell-Skript »startmysqld« aus. Dies gelingt dank passendem Piktogramm direkt von der Workbench aus. Standardmäßig wird MySQL von diesem Skript in der französischen Sprache gestartet. Wenn Sie

-language=/mysql/language/french

durch

-language=/mysql/language/german

Viele Tabellen:
PHP-Anwendungen wie "osCommerce" legen zahlreiche Tabellen an, wie phpMyAdmin zeigt.

ersetzen, informiert Sie MySQL ab dem nächsten Start mit deutschsprachigen Meldungen.
Mit der Option »-uSixK« wird MySQL mit dem Benutzernamen »SixK« gestartet. Sie können diesen Namen durch einen anderen Namen ersetzen, den Sie dann idealerweise auch in Ihrem TCP/IP-Stack definieren. Das Setzen des Usernamen funktioniert nur, wenn MySQL als Benutzer »root« gestartet wird. AmigaOS ist kein Multiuser-Betriebssystem. Sie können das Starten als »root« simulieren, indem Sie vor der Zeile mit dem Aufruf des MySQL-Servers (»mysql:bin/mysqld«) die Zeilen

SetEnv USER2=$USER
SetEnv USER=root

einfügen. Nachdem Aufruf von MySQL können Sie den alten Benutzernamen mit

SetEnv USER=$USER2

wieder herstellen (s. »Startskript für MySQL«).
Da das Startskript auch gleich die »MySQL«-Zuweisung auf das Verzeichnis setzt, aus dem heraus es gestartet wird, können Sie auch beide MySQL-Versionen in unterschiedliche Verzeichnisse parallel installieren und je nach Bedarf MySQL 4 oder MySQL 3 starten.
Weitere Hinweise zur Installation, Konfiguration und Programmierung von MySQL via PHP finden Sie im MySQL-Kurs des AMIGA Magazins [5].

Die passende Umgebung
Um MySQL für PHP-basierte Webanwendungen nutzen zu können, benötigen Sie natürlich noch den Apache-Webserver samt PHP-Modul (zur Installation und Konfiguration s. [1], [2] und [5]). Die Kombination von Apache, PHP und MySQL können Sie dann nutzen, um beliebte PHP-Anwendungen, die das Forensystem »phpBB«, das Shop-System »osCommerce« sowie das Portalsystem »XOOOPS« laufen zu lassen oder eigene Anwendungen zu entwickeln.

Software
Software URL
ixemul.library 48.2 http://amiga.sf.net
ixemul für Morphos http://www.morphos.org
AmigaApache http://amiga-apache.home.pages.de
MySQL 4.0.4beta AmiNet: dev/misc/Mysqld-v4.lha
MySQL 3.23.48 AmiNet: dev/misc/Mysqld-v3.lha
MySQL 3.23.51 AmiNet: dev/misc/Mysqld-v3-upd.lha
MySQl-Doku http://www.mysql.com
phpMyAdmin http://www.phpmyadmin.net
phpBB http://www.phpBB.de
XOOPS http://www.xoops.org
osCommerce http://www.oscommerce.de
XAMPP http://www.apachefriends.org

AmigaApache liegt mittlerweile in der Version 1.3.20 inklusive PHP-Modul Version 4.0.5 vor. Weder die Apache-Version, noch die PHP-Version und auch nicht die Version des MySQL-Ports für den Amiga sind brandaktuell:

Zu Redaktionsschluss lag »MySQL 3« in der Version 3.23.58, »MySQL 4« in der Version 4.0.18, »Apache 1.3« in der Version 1.3.29 und PHP in der Version 4.3.4 vor. Gerade in PHP hat sich seit der Version 4.0.5 relativ viel getan. Wer PHP-Skripte mit den neuen Konventionen zum Zugreifen auf Session, HTTP POST-, HTTP-GET- und anderen global verfügbaren Variablen schreiben möchte, kommt um eine aktuellere PHP-Version nicht herum. Auch in Bezug auf die Sicherheit ist es ratsam, aktuelle Versionen zu nutzen.

Trotzdem liefen erstaunlich viele PHP-Anwendungen noch mit den Amiga-Versionen von Apache, MySQL 4 und PHP ­ darunter das Forensystem »phpBB 2. 0.6«, der Online-Shop »osCommerce 2.2 MS 2« und das MySQL-Front-End »phpMyAdmin 2.2.7pl1«.
Selbst »phpMyAdmin 2.5.6«, welches unter PHP 4.1.0 nicht mehr getestet ist, läuft auf den ersten Blick zufriedenstellend. Allerdings scheint »phpMyAdmin 2.2.7pl1« schneller zu laufen. Das Portalsystem »XOOPS 2.0.6« ließ sich zwar installieren, lieferte jedoch nach der Installation als Startseite nur eine leere Seite zurück. Allerdings erwähnt die Installationsanleitung »PHP 4.1.0« oder höher als Anforderung. »XOOPS 1.3.10« das laut Anleitung laufen müsste, produzierte bei der Installation eine leere Webseite.

Die Installationsroutine von »osCommerce« brach jedoch zunächst ab. Auf einem 68060-Amiga benötigte sie länger als 30 Sekunden. Das ist das Limit, das für die Ausführung eines PHP-Skriptes in der »php.ini«-Datei gesetzt ist. Nach dem Erhöhen der Zeit auf 120 Sekunden, lief die Installationsroutine innerhalb einer Minute zu Ende. Sie finden die entsprechende Einstellung unter der Option »max_execution_time« in der Datei »Apache:

lib/php.ini«. Mithilfe der Option »memory_limit« können Sie angeben, wie viel Speicher ein PHP-Skript maximal nutzt.
Die meisten aktuellen PHP-Anwendungen nutzen Cascading Style-Sheets (CSS), um die HTML-Ausgaben zu formatieren. Die unter AmigaOS lauffähigen Browser »IBrowse«, »AWeb« und »Voyager« stellen diese Formatierungen nicht dar. Man kann die Anwendungen meist dennoch nutzen, sehr ansprechend sieht das aber nicht mehr aus.

Neue Features von MySQL 4
Schneller durch Cache für MySQL-Abfragen, schnellere Massen-Einfügungen (INSERT), schnellere Suche in gepackten Indizes, schnellere Volltextsuche.
InnoDB-Speicher-Engine als Standard-Feature mit Transaktionen und Sperren von Tabellenreihen.
Verbesserte Fulltextsuche: Volltext-Indizierung großer Textmengen nach binärer und linguistischer Logik.
Unterstützung von UNION (ANSI SQL 99-Standard).
Neuer Zeichensatz "latin1_de" für deutschsprachige Sortierung mit Unterstützung von Umlauten.
Viele Parameter des MySQL-Servers können nun gesetzt werden, ohne den Server neu zu starten.
Löschen (DELETE) und aktualisieren (UPDATE) mit mehreren Tabellen.

Besonders wer AmigaOS unter »Linux UAE« laufen lässt, ist mitunter besser beraten die Kombination »Apache ­ PHP ­ MySQL« unter Linux laufen zu lassen. Auch dann kann man, wenn man das Dokumentverzeichnis des Apache-Servers unter Linux UAE zugänglich macht, einen Amiga-Editor wie GoldED verwenden, um HTML-Seiten und PHP-Skripte direkt zu editieren und zu testen.

Unter Linux können Apache, MySQL und PHP wegen Speicherschutz und Mehrbenutzer-Unterstützung zudem weitaus sicherer laufen. Das XAMPP-Projekt bietet sowohl für Linux, als auch für Windows einfach installierbare, vorkonfigurierte Versionen von Apache, PHP und MySQL (s. Kasten »Software«).
Wer jedoch nur die eine oder andere PHP-Anwendung entwickelt, sollte auf die genannten Amiga-Versionen von Apache, MySQL und PHP zurückgreifen. Solche einfachen Anwendungen laufen auch auf dem Amiga und man kann mit der AAMP-Plattform einiges auf die Beine stellen.

Es bleibt zu hoffen, dass aktuelle Versionen von
Apache, MySQL und PHP für AmigaOS portiert werden. Besonders für AmigaOS 4 und Morphos macht dies durchaus Sinn, da ein AmigaOne oder Pegasos auch genügend Rechenleistung bereitstellt, um AAMP zügig laufen zu lassen. Eine Portierung für die geplante »newlib«-Bibliothek für AmigaOS 4 kann dabei sogar die in der »ixemul«-
Bibliothek enthaltenen Hacks überflüssig machen.

lb

Literatur:
[1] Pures Vergnügen, Martin Steigerwald, AMIGA Magazin 10/2000
[2] Mein Freund W., Jörn-Erik Burkert, AMIGA Magazin 8/1998
[3] Neues vom Indianer, Jörn-Erik Burkert, AMIGA Magazin 11/1999
[4] P(HP)erfekt editiert, Martin Steigerwald, AMIGA-Magazin 1/2003
[5] Daten servieren, Michael Christoph, AMIGA Magazin 8 bis 10/2001

 


Hauptseite © 2004 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH
Veröffentlichung und Vervielfältigung nur mit schriftlicher Genehmigung des Verlags

Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster AMIGA schicken.
Zuletzt aktualisiert am 30.4. 2004.