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
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
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