安装成功后 PHP 未加载 ssh2 扩展

安装成功后 PHP 未加载 ssh2 扩展

当我运行 PHP 脚本使用 SFTP 下载文件时出现此错误:PHP 致命错误:调用未定义的函数 ssh2_connect()

我通过运行以下命令安装了 ssh2 PECL 扩展

    sudo pecl channel-update pecl.php.net
    sudo apt-get install libssh2-1-dev
    sudo pecl install -a ssh2-0.12
    echo 'extension=ssh2.so' | sudo tee /etc/php5/mods-available/ssh2.ini > /dev/null
    sudo php5enmod ssh2

我更新了 php.ini 文件。当我查看 phpinfo() 的输出时,我可以看到 ssh2 已启用。PHP 扩展目录是/usr/lib/php5/20121212我可以在哪里看到文件ssh2.so。但是,当我运行以下命令查看 PHP 加载的扩展时,我找不到 ssh2,因此出现相同的致命错误

    php -m

我是否遗漏了什么?

以下是 php 所有 ini 文件的列表

    user84@Perseus2:~$ php --ini
    Configuration File (php.ini) Path: /etc
    Loaded Configuration File:         /etc/php.ini
    Scan for additional .ini files in: (none)
    Additional .ini files parsed:      (none)

    user84@Perseus2:~$ php5 --ini
    PHP Warning:  Module 'ssh2' already loaded in Unknown on line 0
    Configuration File (php.ini) Path: /etc/php5/cli
    Loaded Configuration File:         /etc/php5/cli/php.ini
    Scan for additional .ini files in: /etc/php5/cli/conf.d
    Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
    /etc/php5/cli/conf.d/10-pdo.ini,
    /etc/php5/cli/conf.d/20-curl.ini,
    /etc/php5/cli/conf.d/20-gd.ini,
    /etc/php5/cli/conf.d/20-json.ini,
    /etc/php5/cli/conf.d/20-mysql.ini,
    /etc/php5/cli/conf.d/20-mysqli.ini,
    /etc/php5/cli/conf.d/20-pdo_mysql.ini,
    /etc/php5/cli/conf.d/20-pdo_pgsql.ini,
    /etc/php5/cli/conf.d/20-pgsql.ini,
    /etc/php5/cli/conf.d/20-readline.ini,
    /etc/php5/cli/conf.d/20-ssh2.ini

我可以看到已安装的其他 php5 扩展,例如 openssl,但当我查找 ssh2 时,什么都没有显示。

    user84@Perseus2:/etc/php5/cli$ php --ri ssh2
    Extension 'ssh2' not present.
    user84@Perseus2:/etc/php5/cli$ php --ri openssl

    openssl

    OpenSSL support => enabled
    OpenSSL Library Version => OpenSSL 1.0.1f 6 Jan 2014
    OpenSSL Header Version => OpenSSL 1.0.1f 6 Jan 2014

相关内容