Bootstrap

docker环境下 PHP 安装Wxwork_finance_sdk扩展

第一步

从github下载扩展sdk https://github.com/pangdahua/php7-wxwork-finance-sdk

第二步

下载 https://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rar

注释:解压然后复制里面的两个文件libWeWorkFinanceSdk_C.so和WeWorkFinanceSdk_C.h到php7-wxwork-finance-sdk包里
如果不加这两个文件,后面操作执行./configure --with-php-config…的时候会报错
“checking … configure: error: cannot find WeWorkFinanceSdk_C.h in path”

第三步

执行
make && make install
如果报错checking … configure: error: cannot find WeWorkFinanceSdk_C.h in path
那就改一下当前目录下的config0.m4文件和指定路径

在这里插入图片描述

这是我的扩展包位置/usr/src/php/ext/wxwork-finance-sdk/
在这里插入图片描述
改成你扩展包的位置,不要照着抄

第四步

./configure --with-php-config=/usr/local/bin/php-config --with-wxwork-finance-sdk=/usr/src/php/ext/wxwork-finance-sdk

在这里插入图片描述
如果出现报错
在这里插入图片描述
php-config是PHP文件,如果找不到路径,就find一下,不报错的话就不用改,只改后面的扩展文件的地址就行
在这里插入图片描述

正常了,接着make && make install

第五步
查看是否正常生成so文件
在这里插入图片描述
最后一步
修改php.ini 加上extension=wxwork_finance_sdk.so(这一步不写等于白费)
重启php

在这里插入图片描述

重启php报错

free(): invalid pointer

定位intl扩展的冲突问题. php -m |grep intl 建议重新编译php 取消intl扩展

查看是否与swoole的扩展冲突

优先加载wxwork_finance_sdk.so 后加载swoole 【@tisswb】

docker本地文件上传到容器命令

docker cp /disk2/php7-wxwork-finance-sdk-master php-fpm:/usr/src/php/ext/wxwork-finance-sdk