V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
michael007m
V2EX  ›  程序员

PHP 安装 SSH2 扩展报错

  •  
  •   michael007m · 2019-01-22 10:58:55 +08:00 · 2071 次点击
    这是一个创建于 1932 天前的主题,其中的信息可能已经有所发展或是发生改变。

    报错 /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 时候报错 有没有那个大神安装过

    18 条回复    2019-01-22 16:31:59 +08:00
    julyclyde
        1
    julyclyde  
       2019-01-22 12:34:16 +08:00
    给我的感觉是,你不太分得清楚本体库和 binding 库的区别
    http://php.net/manual/en/ssh2.installation.php
    exip
        2
    exip  
       2019-01-22 13:10:36 +08:00 via Android
    php 版本和 ssh 版本配合问题
    michael007m
        3
    michael007m  
    OP
       2019-01-22 14:07:56 +08:00
    @julyclyde 这个网站我看了下,跟我之前看的是一样的,没有给我解决方法。
    我装个扩展当然不清楚,那这个扩展属于哪个?
    michael007m
        4
    michael007m  
    OP
       2019-01-22 14:08:54 +08:00
    @exip php7.3,那我安装哪个 ssh2 版本
    julyclyde
        5
    julyclyde  
       2019-01-22 14:26:38 +08:00
    @michael007m pecl 给哪个你就装哪个
    jfcherng
        6
    jfcherng  
       2019-01-22 14:37:26 +08:00
    所以你又是怎麼編譯的
    michael007m
        7
    michael007m  
    OP
       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
        8
    jfcherng  
       2019-01-22 14:42:10 +08:00
    pecl 上, PHP 應該使用 1.1.2
    jfcherng
        9
    jfcherng  
       2019-01-22 14:43:27 +08:00
    `phpize --version` 輸出是什麼呢
    jfcherng
        10
    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
        11
    michael007m  
    OP
       2019-01-22 14:47:25 +08:00
    michael007m
        12
    michael007m  
    OP
       2019-01-22 14:47:54 +08:00
    @jfcherng php7.3
    michael007m
        13
    michael007m  
    OP
       2019-01-22 14:54:16 +08:00
    @jfcherng ssh2-1.1.2.tgz 的包我之前安装过也是一样的,刚才我又安装了一般截图如下
    jfcherng
        14
    jfcherng  
       2019-01-22 14:54:30 +08:00   ❤️ 1
    Github 上有個 commit 是修復對 PHP 的兼容性
    https://github.com/php/pecl-networking-ssh2/commit/aa7c738e94655c0086162e7db5c88011502cf35a

    試試到 github 上下載 master 分支來 build
    michael007m
        15
    michael007m  
    OP
       2019-01-22 14:57:51 +08:00
    @julyclyde php7 是不支持的
    michael007m
        16
    michael007m  
    OP
       2019-01-22 15:01:10 +08:00
    @jfcherng 老铁,裂裂裂
    devttl
        17
    devttl  
       2019-01-22 15:19:38 +08:00
    SSH2有很多问题,例如无法登录交换机和一些特殊的SSH。推荐使用这个库 phpseclib/phpseclib 用起来很不错
    michael007m
        18
    michael007m  
    OP
       2019-01-22 16:31:59 +08:00
    @devttl 这个也是扩展么,phpize 安装?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3290 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:00 · PVG 23:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.