Suche…


Kompilieren unter Linux

Um eine PHP-Erweiterung in einer typischen Linux-Umgebung zu kompilieren, müssen einige Voraussetzungen erfüllt sein:

  • Grundkenntnisse in Unix ("make" und ein C-Compiler)
  • Ein ANSI C-Compiler
  • Der Quellcode für die PHP-Erweiterung, die Sie kompilieren möchten

Generell gibt es zwei Möglichkeiten, eine PHP-Erweiterung zu kompilieren. Sie können die Erweiterung statisch in die PHP-Binärdatei kompilieren oder als gemeinsam genutztes Modul kompilieren, das von Ihrer PHP-Binärdatei beim Start geladen wird. Gemeinsam genutzte Module sind wahrscheinlicher, da Sie damit Erweiterungen hinzufügen oder entfernen können, ohne die gesamte PHP-Binärdatei neu erstellen zu müssen. Dieses Beispiel konzentriert sich auf die gemeinsam genutzte Option.

Wenn Sie PHP über Ihren Paketmanager ( apt-get install , yum install usw.) yum install , müssen Sie das -dev Paket für PHP installieren, das die erforderlichen PHP-Header-Dateien und das PHP-Skript enthält, damit die Build-Umgebung funktioniert . Das Paket könnte etwa php5-dev oder php7-dev sollten jedoch php7-dev Ihren Paketmanager verwenden, um mithilfe der Repositorys Ihrer Distribution nach dem entsprechenden Namen zu suchen. Sie können sich unterscheiden.

Wenn Sie PHP aus dem Quellcode erstellt haben, sind die Header-Dateien wahrscheinlich bereits auf Ihrem System vorhanden ( normalerweise in /usr/include oder /usr/local/include ).

Schritte zum Kompilieren

Nachdem Sie überprüft haben, ob Sie alle zum Kompilieren erforderlichen Voraussetzungen haben, können Sie zu pecl.php.net wechseln , eine Erweiterung auswählen, die Sie kompilieren möchten, und den Tar Ball herunterladen.

  1. Packen Sie die Teerkugel aus (z. B. tar xfvz yaml-2.0.0RC8.tgz )
  2. Geben Sie das Verzeichnis ein, in dem das Archiv entpackt wurde, und führen Sie phpize
  3. Sie sollten jetzt ein neu erstelltes .configure Skript sehen, wenn alles gut ./configure , führen Sie diese ./configure
  4. Jetzt müssen Sie make ausführen, wodurch die Erweiterung kompiliert wird
  5. Schließlich make install kopiert die kompilierte Erweiterung binär zu Ihrem Erweiterungsverzeichnis

Der make install Schritt wird typischerweise den Installationspfad für Sie , wo die Erweiterung kopiert wurde. Dies ist normalerweise in /usr/lib/ , zum Beispiel könnte es etwas wie /usr/lib/php5/20131226/yaml.so . Dies hängt jedoch von Ihrer PHP-Konfiguration (dh --with-prefix ) und der jeweiligen API-Version ab. Die API-Nummer ist im Pfad enthalten, um Erweiterungen für verschiedene API-Versionen an separaten Speicherorten zu speichern.

Laden der Extension in PHP

Um die Erweiterung in PHP zu laden, suchen Sie Ihre geladene php.ini-Datei für das entsprechende SAPI und fügen Sie die Zeile extension=yaml.so . extension=yaml.so dann PHP neu. Ändern Sie yaml.so in den Namen der tatsächlich installierten Erweiterung.

Für eine Zend-Erweiterung müssen Sie den vollständigen Pfad zur gemeinsam genutzten Objektdatei angeben. Bei normalen PHP-Erweiterungen wurde dieser Pfad jedoch von der Direktive extension_dir in Ihrer geladenen Konfiguration oder von der $PATH Umgebung während der Ersteinrichtung abgeleitet.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow