Marvin Esse: SAPRFC auf Linux kompilieren?

Hallo,

ich versuche seit ein paar Tagen auf einem SUSE SLES 15 SP3 das SAPRFC-Modul nach Anleitung zu kompilieren.

Folgende Schritte habe ich durchgeführt:

  • Die folgenden Pakete nachinstalliert: zypper install gcc, flex, php5-devel

  • SAPRFC heruntergeladen (saprfc.sourceforge.net)

  • SAPCAR heruntergeladen

  • Von SAP Seite SAPRFC SDK heruntergeladen (Non-Unicode 7.20) ( Das 6.20 war zwar einiges größer, hatte aber im lib-Verzeichnis nicht die gesuchten .so-Dateien)

  • mit SAPCAR entpackt ./sapcar -xf RFC_13-10009728.SAR

  • entpacktes Verzeichnis nach /usr/sap verschieben (/usr/sap/rfcsdk )

  • Pfade gesetzt export SAPRFC_DIR=/usr/sap/rfcsdk/ export PATH=$SAPRFC_DIR/bin:$PATH

  • Ins Verzeichnis saprfc gewechselt phpize (erstellt die Datei configure) ./configure make

Dabei erhalte ich die Fehlermeldung: /tmp/saprfc/rfccal.h:44:19: fatal error: rfcsi.h: No such file or directory

Über Google finde ich nur den Hinweis, dass eben das SAPRFC SDK von SAP heruntergeladen werden soll. Aber das hab ich ja (sonst würde auch configure schon Fehler bringen).

Hat jemand noch eine Idee, wie ich das Teil fehlerfrei kompiliert bekomme?

LG Marvin

  1. Gesucht nach "rfcsi.h not found": Erstes plausibles Ergebnis.

    1. Hallo,

      nachdem ich jetzt das 6.40er SDK von SAP heruntergeladen hab, ist das Kompilieren jett tatsächlich durchgelaufen. Hätte nicht vermutet, dass scheinbar ausschließlich die 6.40er Version läuft.

      Leider bin ich aber noch nicht durch…

      Mit make install hat er die erstellte saprfc.so in das Verzeichnis /usr/lib64/php5/extensions kopiert. Als nächstes habe ich im Verzeichnis /etc/php5/conf.d die Datei saprfc.ini erstellt mit folgendem Inhalt: extension=saprfc.so

      Beim Restart vom Apache wird kein Fehler angezeigt, unter additional ini-files wird auch die von mir erstellte saprfc.ini angezeigt aber phpinfo() zeigt mir nicht das erwartete Modul SAPRFC.

      Noch eine Idee?

      LG Marvin

      1. Ich hab jetzt wenigstens schonmal eine Fehlermeldung gefunden:

        PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php5/extensions/saprfc.so' - libstdc++.so.5: cannot open shared object file: No such file or directory in Unknown on line 0

        Ich vermute, dass libstdc++5 erwartet wird, installiert ist aber libstdc++6. Version 5 wird mir gar nicht zur Verfügung gestellt (zypper search libstdc++)

        Marvin

      2. Noch eine Idee?

        Rechte: Kann der www-data den Ordner /etc/php5/conf.d lesen und betreten sowie die Datei saprfc.ini lesen?

        aber phpinfo()

        Paketierung von SuSE: Ist der Ordner /etc/php5/conf.d für die Weise, in der PHP durch Deinen Apache gestartet wurde, zuständig?

        Ich kenne noch /etc/php5/cli/ (PHP als CLI/Shell-Programm), /etc/php5/fpm/ ("fastCGI"), /etc/php5/apache/ (PHP als Modul). Darin dann jeweils conf.d/ Habe aber Debian-Derivate...

        1. Hallo,

          da PHP an sich funktioniert und in phpinfo() auch angezeigt wird, dass er die von mir angelegte saprfc.ini eingelesen hat

          Additional .ini files parsed : /etc/php5/conf.d/saprfc.ini

          Und in der Fehlermeldung das zu ladende Modul genannt wird:

          Unable to load dynamic library '/usr/lib64/php5/extensions/saprfc.so'

          PHP5 wird als Modul geladen: in sysconfig.d/loadmodule.conf

          LoadModule php5_module /usr/lib64/apache2/mod_php5.so

          Soweit müsste eigentlich alles korrekt sein, oder?

          LG Marvin