Ming
Schon seit einiger Zeit interessieren mich die Flash-Funktionen innerhalb von PHP. Eventuell ist das eine Möglichkeit sinnvolle Flash-Anwendungen zu erstellen. Als ich diese Funktionen aber ausprobieren wollte fiel mir auf, dass die in meinem PHP (SuSE und PHP5) nicht aktiviert waren. Dummerweise gibt es gleich zwei Ansätze, einen mit der Bibliothek [libswf ], die seit 1999 nicht mehr aktualisiert wurde und einen mit der Bibliothek [Ming].
Ich habe mich für die neuere Variante mittels Ming entschieden. Die Software ist auf alle Fälle besser als ihre Dokumentation. Zuerst habe ich mir unter http://sourceforge.net/project/showfiles.php?group_id=18365&package_id=187304 die aktuellste Version 4.0 Beta3 geholt (über die 0.3 Version hatte ich gelesen, dass es Probleme mit PHP5 gibt) und die Datei ming-0.4.0.beta3.tar.gz in /tmp gespeichert und dort extrahiert:
cd /tmp tar xvfz ming-0.4.0.beta3.tar.gz cd ming-0.4.0.beta3
Nun folgt die Übersetzung der Quellen, ich musste dazu noch das Paket bison zusätzlich installieren.
./configure make
Wenn das Compilieren erfolgreich verlaufen ist, dann kann man an die Installation der Ming-Bibliothek gehen, wofür root-Rechte benötigt werden:
su - make install
Damit ist die Ming-Bibliothek installiert, aber nicht das PHP-Modul. Die folgende Beschreibung deckt sich nicht ganz mit der Dokumentation, hat aber nur so funktioniert. Erneut wird das makefile erzeugt und compiliert, jetzt aber mit Aktivierung von PHP. Wenn ich das Makefile gleich mit diesem Parameter erzeuge, dann beschwert sich der Compiler darüber, dass die Ming-Bibliotheken nicht installiert sind. Noch ein kleines Problem ist nachzubessern, das Konfigurationsfile kann das php executable nicht finden, zumindest unter SuSE heisst es ja auch php5. Das lässt sich mit einem kleinen Softlink lösen.
cd /usr/bin su - ln -s php5 php
Nun kann es losgehen:
./configure --enable-php
Wichtig ist, dass in der Zusammenfassung php wirklich als aktivert gekennzeichnet wird.
Config summary: C++ disabled Perl extension disabled PHP extension enabled Python extension disabled Tcl extension disabled ZLIB enabled (-lz) Freetype library enabled (/usr/bin/freetype-config) GIF library disabled PNG library enabled (-lpng)
Danach kann man compilieren.
make
Wenn hier jetzt mit der folgenden Fehlermeldung abgebrochen wird:
phpize: command not found
die Fehlermeldung steht übrigens nicht in der letzten Zeile der Ausgabe, dann muss das Paket php5-devel noch installiert werden.
cp tmp/modules/ming.* /usr/lib/php5/extensions/
Dann die Datei /etc/php5/apache2/php.ini mit einem Editor bearbeiten und im Bereich Dynamic Extensions die Extension hinzufügen.
;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; ; If you wish to have an extension loaded automatically, use the following ; syntax: ; ; extension=modulename.extension extension=ming.so
Nun noch den Webserver neu starten:
rcapache2 restart
dann sollten die Flas-Befehle in PHP verfügbar sein.