如何在Rocky Linux上为PHP 7.4安装ssh2扩展?
解决Rocky Linux下PHP ssh2扩展未定义问题
问题根源
你仅安装了ssh2的底层依赖库libssh2-devel,但PHP的ssh2扩展本身并未安装,导致调用ssh2_connect()时提示函数未定义。
正确安装步骤
1. 安装编译依赖
先确保安装PHP开发工具及相关基础依赖:
yum install php-devel gcc make
2. 安装PHP ssh2扩展
通过PECL安装(若未安装pecl,先安装php-pear):
# 安装pecl工具 yum install php-pear # 编译并安装指定版本的ssh2扩展(1.3.1适配Rocky Linux 8多数PHP版本) pecl install ssh2-1.3.1
3. 启用扩展
在PHP配置目录中添加扩展配置文件:
echo "extension=ssh2.so" > /etc/php.d/ssh2.ini
4. 重启服务
根据你的PHP运行环境,重启对应服务:
# Apache环境 systemctl restart httpd # PHP-FPM环境 systemctl restart php-fpm
排查验证
- 检查扩展是否加载:执行
php -m | grep ssh2,输出ssh2则说明扩展已成功加载。 - 查看PHP信息:创建包含
<?php phpinfo(); ?>的文件,搜索ssh2确认扩展存在。 - 权限检查:确保Apache/PHP进程对
ssh2.so文件拥有读取权限。
相关代码示例
$ssh = ssh2_connect($ssh_domain); if( ssh2_auth_password($ssh_user, $ssh_password) ) { // 执行命令逻辑 }
报错信息
Call to undefined function ssh2_connect()
已执行的安装日志
yum install libssh2-devel Last metadata expiration check: 0:02:00 ago on Wed 03 Aug 2022 12:50:28 PM EDT. Dependencies resolved. ==================================================================================================================================================== Package Architecture Version Repository Size ==================================================================================================================================================== Installing: libssh2-devel x86_64 1.9.0-5.el8 epel 68 k Transaction Summary ==================================================================================================================================================== Install 1 Package Total download size: 68 k Installed size: 288 k Is this ok [y/N]: y Downloading Packages: libssh2-devel-1.9.0-5.el8.x86_64.rpm 309 kB/s | 68 kB 00:00 ---------------------------------------------------------------------------------------------------------------------------------------------------- Total 141 kB/s | 68 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : libssh2-devel-1.9.0-5.el8.x86_64 1/1 Running scriptlet: libssh2-devel-1.9.0-5.el8.x86_64 1/1 Verifying : libssh2-devel-1.9.0-5.el8.x86_64 1/1 Installed: libssh2-devel-1.9.0-5.el8.x86_64 Complete!
内容的提问来源于stack exchange,提问作者Wes Matchett
相关产品推荐
相关产品推荐

