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

 

posted @   我要的我现在就要  阅读(447)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示