von Martin Steigerwald
|
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.
|
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
|
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.
|
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.
|
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 |
© 2004 All Rights Reserved. Alle Rechte vorbehalten Franzis'
Verlag GmbH Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster
AMIGA schicken.
Zuletzt aktualisiert am 30.4. 2004.