安装php soap扩展

最近去帮忙解决这样一个问题,将一个三四年前的 ThinkPHP3.2 老项目迁移到新的服务器上,新服务器上一营部署了好多项目,但是 ThinkPHP3.2项目 使用了phpsoap方法

SOAP是基于XML和HTTP通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的因特网浏览器及服务器的支持。

WSDL 指网络服务描述语言 (Web Services Description Language),是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作。

我是做php的,你是java的,他是做.net,如果我们三个之间要进行通信,要进行数据交换,怎么办呢?我们需要一个能和我们都能通信的工具。soap,wsdl被创造出来,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信

相信一个php扩展大家都能完成,但是我却弄了很久,

首先查看服务器下是否存在soap.我的php版本是7.2+nginx

php -m

发现并没有soap

然后去百度了一番,她告诉你都是编译安装,那么问题来了, Package Browser :: Top Level 这里根本没有

那怎么办呢,然后去手册上查

官方手册会告诉你:如果您使用的是CentOS或RedHat 6或7版附带的官方PHP软件包:

只能通过yum安装,即使我想编译安装也没有官方的文档

这不是巧了吗,我的php版本正式centos7

只能硬着头皮干了,yum install php-soap -----------------安装等待----提示y|n直接输入y直至安装完成

那么问题有来了,再次执行php-m发现还是没有soap扩展

yum再次安装,提示你php-soap已经是最先版本了

好了,不跟大家闲扯了,一般新项目不会用到这个扩展,直接操作

编译安装

1.首先查找服务器php源码目录

find / -name php

列出所有的包含php的文件地址

只能碰碰运气

cd php/ext/soap

确实真的找到了这个文件目录

#运行phpize生成configure

phpzie

此处--with-php-config=/usr/local/php/bin/php-config文件目录必须存在,不存在报错

./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap && make && make install 

我的自动生成到这个目录下:如果没有自动生成,编译未成功

/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/soap.so

如果编译成功

打开php.ini文件

修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"

增加以下行:

extension = "soap.so"

保存退出后重新启动apache,nginx,这样我们就已经加载了soap扩展模块了。

php-m |grep sopa

发布于 2022-07-09 09:17