1. Home
  2. Anleitungen /Tutorials
  3. Installation: php7-sapnwrfc Extension

Installation: php7-sapnwrfc Extension

Die Extension Bedarf einige Besonderheiten, bevor diese genutzt werden kann.

nwrfcsdk

Bevor die Extension kompiliert werden kann, muss SAP NW RFC library bereitgestellt werden.
Dies wird auf auf folgender Seite gut beschrieben:
https://gkralik.github.io/php7-sapnwrfc/installation.html#installing-the-sap-nw-rfc-library

Hinweis

Es muss der Punkt "Installing the SAP NW RFC library" und "Download the SAP NW RFC library" beachtet werden.

Legen Sie die Daten auf dem Server ab und entpacken Sie diese.

php7-sapnwrfc

Klonen Sie nun das git-Repository der Extension:

git clone https://github.com/gkralik/php7-sapnwrfc.git
cd php7-sapnwrfc
phpize
Hinweis

Sollte nicht die default PHP Version Ihres Serves verwendet werden, muss der komplette Pfad angegeben werden: /usr/local/phpX.Y/bin/phpize

Beim configure muss nun jedoch die nwrfcsdk Library angegeben werden:

./configure --with-sapnwrfc=/home/$(whoami)/sap_library/nwrfcsdk

Sofern dies ohne Fehlermeldung durchgeführt wurde muss das Makefile an folgender Stelle angepasst werden:

35 EXTENSION_DIR = /usr/local/php7.3/lib/php/extensions/no-debug-non-zts-20180731

Der Pfad muss zu einem Pfad geändert werden in dem auch geschrieben werden darf.

Anschließend kann die Extension gebaut werden:

make
make install

Sollte alles erfolgreich gewesen sein, finden Sie unter dem im Makefile gesetzten Pfad die Extension "sapnwrfc.so".

ICU Librarys

Bei der Extension muss nun noch der ELF Header für die ICU Librarys gesetzt werden, da diese beim kompilieren leider nicht direkt gesetzt werden können.

Dafür wird die Datei "/usr/bin/patchelf" aus dem Debian Paket benötigt:
https://packages.debian.org/buster/patchelf

Die .deb Datei kann auf einem Debian System entpackt werden mit:

dpkg -x patchelf_0.9+52.20180509-1_amd64.deb [Ziel]

Und in das Home-Verzeichnis des Servers übertragen werden.

Anschließend wird bei der Extension die ICU Librarys manuell als benötigt gesetzt:

/home/$(whoami)/patchelf --add-needed /home/$(whoami)/sap_library/nwrfcsdk/lib/libicuuc.so.50 /home/$(whoami)/sap_library/php7.3_extension/sapnwrfc.so/home/$(whoami)/patchelf --add-needed /home/$(whoami)/sap_library/nwrfcsdk/lib/libicudata.so.50 /home/$(whoami)/sap_library/php7.3_extension/sapnwrfc.so

/home/$(whoami)/patchelf --add-needed /home/$(whoami)/sap_library/nwrfcsdk/lib/libicui18n.so.50 /home/$(whoami)/sap_library/php7.3_extension/sapnwrfc.so

Die geannten Pfade müssen ggf. angepasst werden.

Nun ist die Extension fertig gebaut und kann der php.ini hinzugeführt werden:

extension="/home/USER/sap_library/php7.3_extension/sapnwrfc.so"
Aktualisiert am 29. Mai 2020

War dieser Artikel hilfreich?

Ähnliche Artikel