PHP
PHP-Erweiterungen kompilieren
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.
- Packen Sie die Teerkugel aus (z. B.
tar xfvz yaml-2.0.0RC8.tgz
) - Geben Sie das Verzeichnis ein, in dem das Archiv entpackt wurde, und führen Sie
phpize
- Sie sollten jetzt ein neu erstelltes
.configure
Skript sehen, wenn alles gut./configure
, führen Sie diese./configure
- Jetzt müssen Sie
make
ausführen, wodurch die Erweiterung kompiliert wird - 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.