Centos7x php7.2安装sapnwrfc拓展 对接sap【转载】
原文链接: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 目录中
命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [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 并编辑内容如下
1 2 3 4 5 6 7 8 9 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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安装拓展方式安装
命令如下
1 2 3 4 5 6 7 8 9 10 11 12 | [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
1 2 3 4 5 6 | [havshark@zhj_centos php7-sapnwrfc]# vi /etc/php.ini ## 添加一行 extension=sapnwrfc.so :wq 保存退出 |
重启 php-fpm 即可看到拓展开启
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?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; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!