在安装phpseclib-2.0时,作曲家似乎无法创建正确的目录结构
我正在尝试在生产Linux服务器上安装phpseclib-2.0。我已经在另一个服务器上安装了1.07,但是希望将生产服务器的版本提高到2.0。
我遵循的安装步骤是:
1.)我将库下载并解压缩到phpseclib-2.0 /
2.)将该文件夹复制到我的应用程序文件夹中的vendor /
3.)光盘到vendor / phpseclib-2.0
4.)执行composer install
结果结构为
供应商-phpseclib-2.0
供应商-phpseclib-2.0-phpseclib(包括地穴,文件,数学,网络,系统)
供应商-phpseclib-2.0-供应商(这是结束作曲家和自动加载的地方)
这是我用于测试的代码:
require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;
$connection = ssh2_connect($FTP_URI, 22);
if (!$ssh->login(username, password)) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
我希望它会给我一个目录清单。
我得到的是:
PHP致命错误:调用未定义函数ssh2_connect()
请注意,测试是使用php -f sshtest.php
运行的感谢您的帮助
答案 0 :(得分:0)
$connection = ssh2_connect($FTP_URI, 22);
在phpseclib中没有定义。那是PECL的ssh2扩展名。
要使用phpseclib进行此操作,这是您需要做的:
require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;
$connection = new SFTP($FTP_URI, 22);
if (!$ssh->login(username, password)) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');