basti_p: Einbinden von shared libraries/extern

Hallo,

folgende Frage:
Ich habe Webspace ohne root-Zugriff, kann aber die php-ini (php4 und php5) verzeichnisbezogen anpassen (extension_dir usw.).
Leider ist die Tidy extension nicht mit installiert. Kann ich so eine Bibliothek auch extern einbinden, d.h., mir mit Linux eine tidy.so kompilieren, diese ins angegebene extension_dir kopieren und dann entweder über die php.ini oder direkt im script mit dl("tidy.so") laden?

Danke und Grüße
Basti

  1. Hallo Basti,

    Kann ich so eine Bibliothek auch extern einbinden, d.h., mir mit Linux eine tidy.so kompilieren, diese ins angegebene extension_dir kopieren und dann entweder über die php.ini oder direkt im script mit dl("tidy.so") laden?

    Im Prinzip: ja.

    Du musst die Tidy-Extension bei Dir von der gleichen PHP-Option mit den gleichen Configure-Optionen (bis auf die Option für das Tidy) erstellen (gut, die verwendeten Optionen kriegst Du über phpinfo() raus), Du musst auf Deinem Rechner die gleiche Architektur und das gleiche Betriebsystem haben, wie auf dem Zielrechner (oder einen Crosscompiler, was aber recht kompliziert werden kann) und dann muss Dein Compiler/Linker noch ABI-kompatibel mit dem Compiler sein, der das PHP-Build erstellt hat, das auf dem Server läuft (letzteres ist aber meistens der Fall). Wenn das alles gegeben ist, dann funktioniert das auch. Wenn der Provider dann allerdings PHP aktualisiert, musst Du Deine PHP-Erweiterung auch neu kompilieren (in seltenen Fällen funktionieren die Erweiterungen bei einem Minor-Update (z.B. fiktiv 4.8.4 auf 4.8.5) noch weiter, im Allgemeinen aber nicht).

    Viele Grüße,
    Christian

    1. Hallo Christian,

      ich glaube, das übersteigt meine Linux-Fähigkeiten:-(
      Trotzdem vielen Dank

      Basti