André Laugks: Wie baut man eine *.so-Datei für PHP?

Hallo!

Wie kann ich für einen Server, auf dem ich keine root-Rechte habe, eine so-Datei bauen. Es soll sich hierbei um die Extension "domxml" handeln.

Auf meinem lokelen System (Linux) läuft es. Ich werde aber wohl kaum die Datei einfach kopieren können.

MfG, André Laugks

  1. Hallo André,

    hast Du nur keine Root Rechte oder ist es ein shared hosting Webspace ? Ich bezweifle dass Du die DOM Extension so einfach zum laufen bekommst. Meines Wissens muss dafür PHP neukompiliert werden (Direktive --with-dom-xslt[=DIR]). Ausserdem greift DOM XML auf einige Bibliotheken zu, die auf dem System vorhanden sein müssen.
    ICh denke mal dass Du ohne root Rechte keine Chance hast. Falls es Dir doch irgendwie gelingen sollte, würde es mich sehr interessieren, da ich gerade in einem Projekt mit der DOM Extension arbeite. Momentan gehe ich davon aus, dass wir für das Produktivsystem einen eigenen Server brauchen werden, falls es anders ginge wäre natürlich traumhaft :-)

    Gruss

    Marko

  2. Hallo!

    Wie kann ich für einen Server, auf dem ich keine root-Rechte habe, eine so-Datei bauen. Es soll sich hierbei um die Extension "domxml" handeln.

    Auf meinem lokelen System (Linux) läuft es. Ich werde aber wohl kaum die Datei einfach kopieren können.

    Vielleicht schon, kommt drauf an, wobei selber bauen sicher der bessere Weg ist. Das Problem ist, dass Erweiterungen ja entweder in die php.ini eingetragen werden müssen, bzw. in einem speziellen Extension-Pfad liegen müssen, wenn Du sie mit dl() einbinden willst, und ob Du auf diese Pfade zugreifen kannst weiß ich nicht.

    Wenn Du ein .so Modul erstellen willst, must Du erstmal den PHP-Source verfügbar haben, zur Not kannst Du Dir auch dieselbe Version wie auf dem Server verwendet runterladen und dort das Modul erstellen. In dem Source gehst Du in das Verzeichnis /ext und darin in das entsprechende Verzeichnis Deiner Erweiterung, also /ext/domxml. Dann musst Du nur noch das "phpize" Script ausführen welches die entsprechenden configure und Make-Scripte erstellt, und dann ./configure; make; make install, also z.B.

    cd /usr/local/src/php/ext/domxml
    phpize
    ./configure
    make
    make install

    Fertig. Das ist nicht so das Problem (falls Du einen Compiler zur Verfügung hast, was auch nicht selbstverständlich ist), jetzt muss die Erweitung nur noch aus PHP geladen werden, und dazu hatte ich ja oben schon was geschrieben.

    Grüße
    Andreas