You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS 10.13.3下PHP7.1.7安装SSH2扩展失败求助

解决MacOS 10.13.3 + PHP7.1.7下SSH2扩展安装与调用问题

我之前在相同环境下踩过完全一样的坑——官方PECL仓库里的ssh2扩展版本确实只支持到PHP6,没法直接用pecl install ssh2安装。而且因为扩展没装,调用ssh2_sftp($this->con)时PHP找不到全局函数,就会误以为你是在调用类内的方法,报出类似“找不到类内方法”的错误。下面是亲测有效的解决方案:

步骤1:安装依赖库

首先用Homebrew安装OpenSSL和libssh2(如果没装Homebrew先完成安装):

brew install openssl libssh2

步骤2:获取支持PHP7的SSH2源码

官方PECL的旧版本不兼容PHP7,咱们用PHP官方维护的适配PHP7的分支源码:

git clone https://github.com/php/pecl-networking-ssh2.git
cd pecl-networking-ssh2
# 切换到专门适配PHP7的分支
git checkout php7

步骤3:编译并安装扩展

用phpize生成编译配置,注意指定OpenSSL的Homebrew安装路径:

phpize
./configure --with-ssh2 --with-openssl-dir=/usr/local/opt/openssl
make && sudo make install

步骤4:启用扩展

找到你的PHP7.1对应的php.ini文件(可以通过php --ini命令查看加载的配置文件路径),在文件末尾添加一行:

extension=ssh2.so

步骤5:验证安装与解决调用问题

重启你的Web服务(比如Apache或Nginx),然后在终端执行:

php -m | grep ssh2

如果输出ssh2,说明扩展安装成功了。这时候再调用ssh2_sftp($this->con),PHP就能找到全局的ssh2扩展函数,不会再误认为是类内方法了。

内容的提问来源于stack exchange,提问作者Oman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:26:49