Centos7x php7.2安裝sapnwrfc拓展 對接sap【轉載】
阿新 • • 發佈:2022-04-21
原文連結:https://blog.csdn.net/daily886/article/details/90051167
php7拓展 sapnwrfc 介紹 https://php7-sapnwrfc.readthedocs.io/zh/latest/introduction.html
php7-sapnwrfc 擴充套件封裝了 SAP NetWeaver RFC 庫 並且使用提供的方法允許 PHP開發者呼叫開啟了遠端呼叫的ABAP模組。
一,在伺服器上安裝 sapnwrfc 的 sdk 環境
下載sapnwrfc 的sdk https://github.com/mikewolfli/sapnwrfcsdk
linux/centos系統使用的是紅色箭頭的壓縮包
下載後解壓該壓縮包 得到一個 nwrfcsdk 資料夾
在伺服器新建一個package資料夾 把 nwrfcsdk 資料夾上傳到 package資料夾內
建立 /usr/sap 目錄
複製上傳的資料夾到 /usr/sap 目錄中
命令如下:
[root@centos ~]# mkdir package [root@centos ~]# ll total 4 drwxr-xr-x 2 root root 4096 May 10 08:50 package [root@centos ~]# cd package [root@centos package]# ll total 4 drwxr-xr-x 7 root root 4096 May 10 08:50 nwrfcsdk [root@centos package]# mkdir /usr/sap [root@centos package]# cp nwrfcsdk -r /usr/sap/nwrfcsdk [root@centos package]# cd /usr/sap [root@centos sap]# ll total 4 drwxr-xr-x 7 root root 4096 May 10 08:53 nwrfcsdk [root@centos lib]# chmod -R 755 /usr/sap
新建檔案 /etc/ld.so.conf.d/nwrfcsdk.conf 並編輯內容如下
[root@centos sap]# vi /etc/ld.so.conf.d/nwrfcsdk.conf ## 輸入以下內容 /usr/sap/nwrfcsdk/lib :wq 儲存退出 ## 使配置生效 [root@centos sap]# ldconfig
至此 sdk環境安裝完畢
二、安裝 php7-sapnwrfc
下載地址:https://github.com/yuanhuiqiang/php7-sapnwrfc
[root@centos sap]# cd ~/package [root@centos package]# git clone https://github.com/yuanhuiqiang/php7-sapnwrfc Cloning into 'php7-sapnwrfc'... remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (9/9), done. remote: Total 1409 (delta 0), reused 3 (delta 0), pack-reused 1400 Receiving objects: 100% (1409/1409), 6.72 MiB | 2.16 MiB/s, done. Resolving deltas: 100% (839/839), done. [root@centos package]# ll total 8 drwxr-xr-x 7 root root 4096 May 10 08:50 nwrfcsdk drwxr-xr-x 6 root root 4096 May 10 09:02 php7-sapnwrfc
切換到 php7-sapnwrfc 使用php安裝拓展方式安裝
命令如下
[centos@centos package]# cd php7-sapnwrfc [centos@centos php7-sapnwrfc]# phpize Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012 [centos@centos php7-sapnwrfc]# ./configure --with-php-config=/usr/bin/php-config [centos@centos php7-sapnwrfc]# make && make install
編輯 /etc/php.ini 新增拓展 sapnwrfc.so
[havshark@zhj_centos php7-sapnwrfc]# vi /etc/php.ini ## 新增一行 extension=sapnwrfc.so :wq 儲存退出
重啟 php-fpm 即可看到拓展開啟
[centos@centos php7-sapnwrfc]# service php-fpm restart Redirecting to /bin/systemctl restart php-fpm.service [centos@centos php7-sapnwrfc]# php -m ## sapnwrfc就是拓展了 sapnwrfc session shmop SimpleXML sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl zip zlib [Zend Modules]
三、使用sapnwrfc
<?php use SAPNWRFC\Connection as SapConnection; use SAPNWRFC\Exception as SapException; $config = [ 'ashost' => '192.168.1.1', // sap伺服器地址 'sysnr' => '00', //sap給的,systemNumber,一般'00-99' 'client' => '123', //sap給的,Client,一般'000-999' 'user' => 'YOUR USERNAME', //sap給的 'passwd' => 'YOUR PASSWORD', //sap給的 'trace' => SapConnection::TRACE_LEVEL_OFF, ]; try { $c = new SapConnection($config); $f = $c->getFunction('STFC_CHANGING'); //sap的方法/函式 $result = $f->invoke([ //給sap傳引數 'START_VALUE' => 0, 'COUNTER' => 1, ]); var_dump($result); //sap的返回結果 /* * array(2) { * ["COUNTER"]=> * int(2) * ["RESULT"]=> * int(1) * } */ } catch(SapException $ex) { echo 'Exception: ' . $ex->getMessage() . PHP_EOL; }