Ming

Aus Debacher-Wiki
Zur Navigation springenZur Suche springen

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.