我尝试设置ssh
连接,稍后设置sftp
连接,通过FTP将文件传输到我的服务器。我之前使用过FileZilla成功上传文件。
这些是我的登录终端命令和FileZilla登录信息:
ssh b0xxxxx@linux7.aa.bb.cc.dd
Host: sftp://linux7.aa.bb.cc.dd
Username: b0xx
Port: 22
这是我的php
代码:
<?php
$ftp_server = "b0xx@linux7.aa.bb.cc.dd";
$ftp_port = 22;
$ftp_user = "b0xx";
$ftp_pass = "##";
$connection = ssh2_connect($ftp_server, $ftp_port);
echo "Successful!\n";
if (ssh2_auth_password($connection, $ftp_user, $ftp_pass)) {
echo "Successful\n";
} else {
die ('Failed...');
}
$sftp = ssh2_sftp($connection);
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>
问题1:我可以使用ftp
函数从我的服务器上传/下载文件吗?
或者我必须设置ssh
?
问题2:当我执行代码时,网站只显示
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
表示代码未成功执行connection
。有谁知道这个bug的原因?
非常感谢帮助。
答案 0 :(得分:0)
似乎没有安装SSH2 PECL扩展。安装扩展程序,然后尝试使用代码。
答案 1 :(得分:0)
$ftp_server = "b0xx@linux7.aa.bb.cc.dd";
“b0xx@linux7.aa.bb.cc.dd”不是主机名。主机名中不能包含“@”。这可能是“username @ hostname”字符串,但ssh_connect()
不接受此表单中的字符串。
删除用户名部分:
$ftp_server = "linux7.aa.bb.cc.dd";