CentOS7环境下PHP5.6安装ssh2扩展失败求助
解决CentOS7 + PHP5.6安装ssh2扩展的方案
1. 安装支持PHP5.6的ssh2旧版本
pecl仓库中ssh2-0.13.1版本兼容PHP5.6,可通过以下方式安装:
方式一:直接通过pecl指定版本安装
先更新pecl通道(解决报错里的协议更新提示),再安装指定版本:
pecl channel-update pecl.php.net pecl install ssh2-0.13.1
方式二:手动下载源码编译(若pecl安装失败)
# 下载对应版本源码包 wget https://pecl.php.net/get/ssh2-0.13.1.tgz # 解压源码 tar zxvf ssh2-0.13.1.tgz cd ssh2-0.13.1
2. 安装编译依赖
确保系统已安装libssh2开发库和PHP开发工具:
yum install -y libssh2 libssh2-devel php56-devel
3. 编译并安装扩展
使用phpize生成编译配置,完成编译安装:
phpize ./configure --with-ssh2 make && make install
4. 启用ssh2扩展
创建扩展配置文件并重启服务:
# 写入扩展配置 echo "extension=ssh2.so" > /etc/php.d/ssh2.ini # 根据你的服务类型重启 # 若用PHP-FPM systemctl restart php-fpm # 若用Apache systemctl restart httpd
5. 验证安装结果
执行命令检查扩展是否成功加载:
php -m | grep ssh2
输出ssh2则说明安装生效。
关于直接复制目录无效的说明
PHP扩展是与当前服务器的PHP版本、编译参数、依赖库版本绑定编译的,即使两台服务器配置看似相同,也可能存在libssh2版本、PHP编译选项等细微差异,直接复制已编译的扩展文件无法适配目标环境,必须在目标服务器重新编译匹配当前环境的扩展。
内容的提问来源于stack exchange,提问作者emquark
相关产品推荐
相关产品推荐

