gpt4 book ai didi

php - 某些服务器上的 FTP SSL 连接出现 ftp_put "Failed to establish connection"错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:25 26 4
gpt4 key购买 nike

我创建了一个 PHP 脚本来备份 Web 项目。它包括制作一个 .tar.gz 存档,并将其发送到个人 FTP 服务器(使用 vsftpd)。

在许多 Web 服务器上它工作正常,但在一个特定的 Web 服务器上脚本不能正常工作。

这里是FTP连接部分:

$connessione = ftp_ssl_connect($ftpServer, $ftpPort, 300);
if($connessione == false)
{
echo("connection failed.\n");
return false;
}
echo("Connection established.\n");
echo("Authenticating for " .$username . " ...\n");
$resLogin = ftp_login($connessione, $username, $password);
if(!$resLogin)
{
echo("authentication failed.\n");
return false;
}
ftp_pasv($connessione, false);

$workingDir = ftp_pwd($connessione);
echo("entering on " . $workingDir . "\n");
echo("Uploading file ... \n");
$fullFilePath = __DIR__ . "/" . $filePath;
$result = ftp_put($connessione, $ftpPath . $file, $fullFilePath, FTP_BINARY);
if($result)
echo("Upload completed.\n");
else
echo("Some error occurred.\n");
ftp_close($connessione);

ftp_put 调用返回的错误是:

PHP Warning: ftp_put(): Failed to establish connection.

最佳答案

您正在明确使用 FTP 事件 模式。我什至很惊讶它在大多数服务器上对你有用。不要使用主动模式,使用被动模式。

ftp_pasv($connessione, true);

要使主动模式工作,您的网络服务器必须配置防火墙和 NAT 以允许传入的 FTP 数据连接。有关详细信息,请参阅关于 active and passive FTP connection modes我的文章.

关于php - 某些服务器上的 FTP SSL 连接出现 ftp_put "Failed to establish connection"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com