docker内编译安装企微提供的sdk:wxwork_finance_sdk

1、拉取php镜像

docker pull php:7.4-fpm
# 拉取php7.4的镜像

2、进入容器环境

docker run -it --name php74 php:7.4-fpm /bin/bash
### --name php74 起一个名字,后续与其他版本好做区分
### -i 我们需要交互性的操作 -t 在容器内挂起终端
### /bin/bash 需要一个交互性的shell供我们进行操作

3、准备工作

apt-get update
apt-get install -y gcc make vim autoconf wget

### 由于安装的扩展是非官方的[非php官方],只能有源码进行编译,所以需要安装一个rar 的解压
wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz
tar -xzpvf rarlinux-x64-612.tar.gz 
cd rar 
make

4、拉取并解压源码

wget https://github.com/pangdahua/php7-wxwork-finance-sdk/archive/refs/tags/1.2.0.tar.gz
wget https://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rar

tar -zxvf 1.2.0.tar.gz
rar x sdk_20201116.rar

### 解压完毕
cd sdk_20201116/C_sdk
cp libWeWorkFinanceSdk_C.so ../../php7-wxwork-finance-sdk-1.2.0  
cp WeWorkFinanceSdk_C.h ../../php7-wxwork-finance-sdk-1.2.0

5、开始编译扩展源码

cd php7-wxwork-finance-sdk-1.2.0

### 找到当前的phpize所在,php-config与它在同一目录下
whereis phpize

### 我的在/usr/local/bin

### 1、执行下面的命令
/usr/local/bin/phpize 
### 2、执行完毕之后,再次执行下面的命令
./configure --with-php-config=/usr/local/bin/php-config --with-wxwork-finance-sdk=/phplib/php7-wxwork-finance-sdk-1.2.0 #[这个地址是上面的php7-wxwork-finance-sdk-1.2.0的地址]
### 3、如果没有错误,则进行编译操作
make && make install

### 若1、2有报错,记得检测php-config与phpize的目录位置是否正确,替换为正确的目录之后,重新执行1、2、3步骤

6、增加扩展

### 第5步进行完毕之后会提示编译后扩展的位置
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20190902/

### 我们切换到给出的目录,查看扩展是否已经生成
cd /usr/local/lib/php/extensions/no-debug-non-zts-20190902/

### 若该目录存在 wxwork_finance_sdk.so 文件,则代表扩展编译成功

### 编译成功后,我们将扩展配置到ini文件内,具体目录根据你们自身的来进行查看
cd /usr/local/etc/php/conf.d

### 该目录内有一文件:docker-php-ext-sodium.ini;也不一定是这个文件,自行找一个ini的文件编辑即可。
vim docker-php-ext-sodium.ini

### 打开上述的文件,将扩展加入即可
extension=wxwork_finance_sdk.so

### 加入完成,执行下面的命令进行查看
php -m 

### 查看列出的扩展是否存在 wxwork_finance_sdk,存在扩展且没有报错即可

### 重启容器
docker restart [容器id]

本博客所有文章如无特别注明均为原创。作者:止语复制或转载请以超链接形式注明转自 止语博客
原文地址《docker内编译安装企微提供的sdk:wxwork_finance_sdk

相关推荐

发表评论

路人甲
看不清楚?点图切换

网友评论(1)

感谢分享
上海网站建设 11个月前 (2023-07-01) 回复