当我运行 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