Imagick unter PHP 8 fehlt noch - wie läßt es sich nachinstallieren?

  • Bei den aktuellen Server-Umgebungen ist im PHP 8 noch kein imagick.so Modul enthalten.


    Über pecl läßt es sich nicht installieren, da dort die Änderungen aus dem aktuellen git noch nicht eingepflegt sind.

    Ich habe daher die Sourcen runtergeladen, kann sie aber nicht so final kompilieren, das sie mit dem php 8 funktioniert.


    Die aktuell in git eingepflegte imagick Version soll aber mit php 8 lauffähig sein.


    Bisherige Vorgehensweise:

    Code
    git clone https://github.com/Imagick/imagick.git
    /usr/local/pd-admin2/php-8.0.3/bin/phpize
    ./configure CFLAGS="-I/usr/local/pd-admin2/include/ -I/usr/local/pd-admin2/include/ImageMagick/" --with-php-config=/usr/local/pd-admin2/php-8.0.3/bin/php-config --bindir=/usr/local/pd-admin2/bin --includedir=/usr/local/pd-admin2/include --libdir=/usr/local/pd-admin2/lib:/usr/local/pd-admin2/syslib4:/usr/local/pd-admin2/syslib3:/usr/local/pd-admin2/syslib:/usr/local/pd-admin2/lib
    make


    Das Konfigurieren schlägt fehl, da er den Verweis auf die MagickWand Header nicht findet. Wenn ich aus dem include Verzeichnis der pdaminse die Dateien übernehme, kann ich zwar die Konfiguration machen und auch das Erstellen des .so Files durchführen, aber am Ende funktioniert es nicht, weil in dem Kompilat libpath Verweise auf das Stammsystem sind und nicht auf die pdadminse Umgebung referenziert wird. Ein make test schlägt auch entsprechend fehl.


    UPDATE:

    Mit dem geänderten configure Aufruf, der dei Include Files dem make mitgibt, läßt sich das Modul kompilieren.

    Wenn ich allerdings das Modul im php 8 einbinde, kann ich den FPM Service nicht mehr starten, der Start schlägt fehl.


    Hat jemand eine Idee, wie man dennoch zu einem funktionsfähigen Kompilat gelangt bzw. woran es liegt, das sich der FPM Service mit eingebundenen Modul nicht mehr starten läßt?

  • UPDATE:
    Ich habe es zum Laufen bekommen.

    Vorgehensweise:


    Runterladen des Source-Codes

    Code
    git clone https://github.com/Imagick/imagick.git


    Anpassen der Datei /usr/local/pd-admin2/bin/MagickWand-config (dort den Pfad auf die pkg-config überall austauschen, der verweist aktuell auf einen nicht existierenden Pfad).


    Durchführen der Konfiguration und Compilierung:

    Code
    /usr/local/pd-admin2/php-8.0.3/bin/phpize
    PKG_CONFIG_PATH=/usr/local/pd-admin2/lib/pkgconfig/
    export PKG_CONFIG_PATH
    ./configure CFLAGS="-I/usr/local/pd-admin2/include/ -I/usr/local/pd-admin2/include/ImageMagick-6/ -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16" --with-php-config=/usr/local/pd-admin2/php-8.0.3/bin/php-config --bindir=/usr/local/pd-admin2/bin --includedir=/usr/local/pd-admin2/include --libdir=/usr/local/pd-admin2/lib:/usr/local/pd-admin2/syslib4:/usr/local/pd-admin2/syslib3:/usr/local/pd-admin2/syslib:/usr/local/pd-admin2/lib
    make clean
    make

    Das Compilat liegt dann unterhalb des Ordners imagick im Ordner modules.


    Test der Abhängigkeiten / Installation der Library

    Abschließend noch die php.ini anpassen, um die Extension imagick.so zu aktivieren sowie den FPM-Service neu durchstarten.


    Und danach sollte es laufen.