BT宝塔面板安装PHP SSH2扩展的方法【原创】

Proxmox出现 Function "ssh2_connect" does not exist.Please Install SSH2 PECL before you start using the script. 错误提示的解决方法。

游子最近在折腾 proxmox 安装 PHP SSH2扩展,用的是BT宝塔面板,分享BT宝塔面版安装PHP SSH2扩展的方法。

如果你也遇到宝塔面板PHP安装SSH2扩展的问题,这篇文章或许对你有所帮助。

宝塔面板PHP安装SSH2扩展安装方法如下:(以php7.2为例)

安装之前我们首先要搞清楚宝塔的PHP路径

宝塔面板PHP路径是这样的,如果你是其他PHP版本对应修改即可,把72改成71或70,分别代表PHP版本号

/www/server/php/72/bin/phpize

CentOS 7.x + 宝塔面板 PHP7.2为例,安装SSH2扩展

1、先安装必要的系统组件

yum install -y libssh2.x86_64 php-pecl-ssh2.x86_64
yum install -y openssl
yum install -y openssl-devel

2、下载安装包,先安装libssh2再安装ssh2

wget https://www.libssh2.org/download/libssh2-1.8.0.tar.gz
wget https://pecl.php.net/get/ssh2-1.1.2.tgz

3、开始安装libssh2

tar -zxvf libssh2-1.8.0.tar.gz
cd libssh2-1.8.0
./configure --prefix=/usr/local/libssh2
make && make install

4、开始编译安装ssh2

cd /root
tar -zxvf ssh2-1.1.2.tgz
cd ssh2-1.1.2
/www/server/php/72/bin/phpize
./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/www/server/php/72/bin/php-config
make && make install

5、修改配置文件添加扩展加载文件路径

vi /www/server/php/72/etc/php.ini

复制这行粘帖到追尾行

/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ssh2.so

6、重启apache服务

/etc/init.d/httpd restart

7、重启php服务

/etc/init.d/php-fpm-72 restart

如果是其他PHP版本对应重启即可

/etc/init.d/php-fpm-{52|53|54|55|56|70|71} restart

8、至此宝塔面板PHP安装SSH2扩展成功!如果安装过程中遇到错误,或者有什么不懂的欢迎留言或联系游子。很乐意帮你解决问题!

用支付宝打赏用支付宝打赏 用微信打赏用微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者


最后编辑于:2018/12/19作者: 游子

热爱一切美好的新事物,搞网站也被网站搞,剁手折腾。关注与学习Web相关技术与UI\UE\UED\UCD\Server相关知识,服务器运维、前端、后端、非专业程序猿、非高级前端后端攻城师!

10 条评论

awei进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

  1. 涨涨 涨涨说道:
    6#

    求教 为什么 ssh2扩展没挂上
    [PHP Modules]
    bcmath
    Core
    ctype
    curl
    date
    dom
    filter
    ftp
    gd
    gettext
    hash
    iconv
    intl
    json
    libxml
    mbstring
    mysqli
    mysqlnd
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    Phar
    posix
    Reflection
    session
    shmop
    SimpleXML
    soap
    sockets
    SPL
    sqlite3
    standard
    sysvsem
    tokenizer
    xml
    xmlreader
    xmlrpc
    xmlwriter
    zip
    zlib

    [Zend Modules]

    • 游子 游子说道:

      一步步来 清测可以行

  2. 涨涨 涨涨说道:
    5#

    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no

    creating libtool
    appending configuration tag "CXX" to libtool
    configure: creating ./config.status
    config.status: creating config.h
    config.status: config.h is unchanged
    [root@xs193187119101 ssh2-1.1.2]# make
    /bin/sh /root/ssh2-1.1.2/libtool --mode=compile cc -I. -I/root/ssh2-1.1.2 -DPHP_ATOM_INC -I/root/ssh2-1.1.2/include -I/root/ssh2-1.1.2/main -I/root/ssh2-1.1.2 -I/www/server/php/56/include/php -I/www/server/php/56/include/php/main -I/www/server/php/56/include/php/TSRM -I/www/server/php/56/include/php/Zend -I/www/server/php/56/include/php/ext -I/www/server/php/56/include/php/ext/date/lib -I/usr/local/libssh2/include -DHAVE_CONFIG_H -g -O2 -c /root/ssh2-1.1.2/ssh2.c -o ssh2.lo
    mkdir .libs
    cc -I. -I/root/ssh2-1.1.2 -DPHP_ATOM_INC -I/root/ssh2-1.1.2/include -I/root/ssh2-1.1.2/main -I/root/ssh2-1.1.2 -I/www/server/php/56/include/php -I/www/server/php/56/include/php/main -I/www/server/php/56/include/php/TSRM -I/www/server/php/56/include/php/Zend -I/www/server/php/56/include/php/ext -I/www/server/php/56/include/php/ext/date/lib -I/usr/local/libssh2/include -DHAVE_CONFIG_H -g -O2 -c /root/ssh2-1.1.2/ssh2.c -fPIC -DPIC -o .libs/ssh2.o
    In file included from /root/ssh2-1.1.2/ssh2.c:28:0:
    /root/ssh2-1.1.2/php_ssh2.h:152:25: 错误:未知的类型名‘zend_resource’
    void php_ssh2_sftp_dtor(zend_resource *rsrc);
    ^
    /root/ssh2-1.1.2/ssh2.c: 在函数‘php_ssh2_debug_cb’中:
    /root/ssh2-1.1.2/ssh2.c:101:45: 错误:宏“ZVAL_STRINGL”需要 4 个参数,但只给出了 3 个
    ZVAL_STRINGL(&args[0], message, message_len);
    ^
    /root/ssh2-1.1.2/ssh2.c:101:2: 错误:‘ZVAL_STRINGL’未声明(在此函数内第一次使用)
    ZVAL_STRINGL(&args[0], message, message_len);
    ^
    /root/ssh2-1.1.2/ssh2.c:101:2: 附注:每个未声明的标识符在其出现的函数内只报告一次
    /root/ssh2-1.1.2/ssh2.c:102:47: 错误:宏“ZVAL_STRINGL”需要 4 个参数,但只给出了 3 个
    ZVAL_STRINGL(&args[1], language, language_len);
    ^
    /root/ssh2-1.1.2/ssh2.c:105:2: 警告:传递‘call_user_function_ex’的第 6 个参数时在不兼容的指针类型间转换 [默认启用]
    if (FAILURE == call_user_function_ex(NULL, NULL, data->disconnect_cb, NULL, 3, args, 0, NULL)) {
    ^
    In file included from /www/server/php/56/include/php/main/php.h:39:0,
    from /root/ssh2-1.1.2/ssh2.c:25:
    /www/server/php/56/include/php/Zend/zend_API.h:455:14: 附注:需要类型‘struct zval ***’,但实参的类型为‘struct zval *’
    ZEND_API int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *function_name, zval **retval_ptr_ptr, zend_uint param_count, zval **params[], int no_separation, HashTable *symbol_table TSRMLS_DC);
    ^
    /root/ssh2-1.1.2/ssh2.c: 在函数‘php_ssh2_ignore_cb’中:
    /root/ssh2-1.1.2/ssh2.c:128:45: 错误:宏“ZVAL_STRINGL”需要 4 个参数,但只给出了 3 个
    ZVAL_STRINGL(&args[0], message, message_len);
    ^
    /root/ssh2-1.1.2/ssh2.c:128:2: 错误:‘ZVAL_STRINGL’未声明(在此函数内第一次使用)
    ZVAL_STRINGL(&args[0], message, message_len);
    ^
    /root/ssh2-1.1.2/ssh2.c:130:2: 警告:传递‘call_user_function_ex’的第 4 个参数时在不兼容的指针类型间转换 [默认启用]

  3. GGG GGG说道:
    4#

    可以,哈哈哈 :cool:

  4. awei awei说道:
    3#

    在php.ini配置文件中添加ssh2扩展:extension=ssh2.so

  5. awei awei说道:
    2#

    怎么查看 ssl2扩展安装成功

    • 游子 游子说道:

      按步骤一步一步操作即可

  6. 唐建兴 唐建兴说道:
    1#

    第4步时候每次都安装不成功
    完整的输入命令后,只弹出phpize的版本信息,不知道为什么昵

    • 游子 游子说道:

      按步骤操作不会有任何问题,一步步PHP版本搞对来。

    • 游子 游子说道:

      搞定否?