PHP 安装 SSH2 扩展报错

2019-01-22 10:58:55 +08:00
 michael007m

报错 /root/ssh2-0.12/ssh2.c:1284:52: error: ‘ php_ssh2_sftp_dtor ’ undeclared (first use in this function) le_ssh2_sftp = zend_register_list_destructors_ex(php_ssh2_sftp_dtor, NULL, PHP_SSH2_SFTP_RES_NAME, module_number); ^ /root/ssh2-0.12/ssh2.c:1285:58: error: ‘ php_ssh2_pkey_subsys_dtor ’ undeclared (first use in this function) le_ssh2_pkey_subsys = zend_register_list_destructors_ex(php_ssh2_pkey_subsys_dtor, NULL, PHP_SSH2_PKEY_SUBSYS_RES_NAME, module_number); ^ make: *** [ssh2.lo] Error 1

看了很多文章,说是换一个 ssh2 包,我也试过还是不行 我测试过 ssh2 的包 ssh2-1.1.2.tgz ssh2-0.12.tgz ssh2-0.13.tgz

也依赖过 libssh2 libssh2-1.8.0.tar.gz libssh2-1.4.2.tar.gz

都测试过,make 时候报错 有没有那个大神安装过

2099 次点击
所在节点    程序员
18 条回复
julyclyde
2019-01-22 12:34:16 +08:00
给我的感觉是,你不太分得清楚本体库和 binding 库的区别
http://php.net/manual/en/ssh2.installation.php
exip
2019-01-22 13:10:36 +08:00
php 版本和 ssh 版本配合问题
michael007m
2019-01-22 14:07:56 +08:00
@julyclyde 这个网站我看了下,跟我之前看的是一样的,没有给我解决方法。
我装个扩展当然不清楚,那这个扩展属于哪个?
michael007m
2019-01-22 14:08:54 +08:00
@exip php7.3,那我安装哪个 ssh2 版本
julyclyde
2019-01-22 14:26:38 +08:00
@michael007m pecl 给哪个你就装哪个
jfcherng
2019-01-22 14:37:26 +08:00
所以你又是怎麼編譯的
michael007m
2019-01-22 14:39:56 +08:00
@jfcherng tar -zxvf ssh2-0.12.tgz
cd ssh2-0.12
phpize
./configure --with-php-config=/usr/local/php/bin/php-config LIBS=-ldl
make
jfcherng
2019-01-22 14:42:10 +08:00
pecl 上, PHP 應該使用 1.1.2
jfcherng
2019-01-22 14:43:27 +08:00
`phpize --version` 輸出是什麼呢
jfcherng
2019-01-22 14:45:48 +08:00
如果你的 PHP 版本 >= 7, 嘗試以下步驟

使用 ssh2-1.1.2 的包,然後

cd ssh2-1.1.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config LIBS=-ldl
make
make install
michael007m
2019-01-22 14:47:25 +08:00
michael007m
2019-01-22 14:47:54 +08:00
@jfcherng php7.3
michael007m
2019-01-22 14:54:16 +08:00
@jfcherng ssh2-1.1.2.tgz 的包我之前安装过也是一样的,刚才我又安装了一般截图如下
jfcherng
2019-01-22 14:54:30 +08:00
Github 上有個 commit 是修復對 PHP 的兼容性
https://github.com/php/pecl-networking-ssh2/commit/aa7c738e94655c0086162e7db5c88011502cf35a

試試到 github 上下載 master 分支來 build
michael007m
2019-01-22 14:57:51 +08:00
@julyclyde php7 是不支持的
michael007m
2019-01-22 15:01:10 +08:00
@jfcherng 老铁,裂裂裂
devttl
2019-01-22 15:19:38 +08:00
SSH2有很多问题,例如无法登录交换机和一些特殊的SSH。推荐使用这个库 phpseclib/phpseclib 用起来很不错
michael007m
2019-01-22 16:31:59 +08:00
@devttl 这个也是扩展么,phpize 安装?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/529381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX