我尝试使用PHP FTP功能通过受密码保护的HTTP squid代理连接到受密码保护的ftp服务器。 这些是我的变量:
$ftp_server = "abc.def.com";
$ftp_port = 22;
$ftp_user = "uvw";
$ftp_pass = "xyz";
$proxy_server = "www-cache";
$proxy_port = "8080";
$proxy_user = "qwe";
$proxy_pass = "rty";
这是我尝试过的:
$path = "test.txt";
$chronosPath = "webroot/files/uploads/";
echo "Experiment 1\n";
$conn = ftp_connect($proxy_user.":".$proxy_pass."@".$proxy_server, $proxy_port);
$login = ftp_login($conn, $ftp_user."@".$ftp_server, $ftp_pass);
var_dump($conn);
var_dump($login);
echo "Experiment 2\n";
$stream_options = array(
'ftp' => array(
'proxy' => $proxy_user.":".$proxy_pass."@".$proxy_server.":".$proxy_port
)
);
$context = stream_context_create($stream_options);
$file = fopen("ftp://".$ftp_user.":".$ftp_pass."@".$ftp_server."/test.txt", "r", false, $context);
echo fread($file,20);
echo "Experiment 3\n";
$curl = curl_init();
$file = fopen($chronosPath.$path, 'w');
curl_setopt_array($curl, array(
CURLOPT_URL => "ftp://".$ftp_user.":".$ftp_pass."@".$ftp_server.":".$ftp_port."/".$path,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FILE => $file,
CURLOPT_PROXY => $proxy_server,
CURLOPT_PROXYPORT => $proxy_port,
CURLOPT_PROXYUSERPWD => $proxy_user.":".$proxy_pass,
));
curl_exec($curl);
curl_close($curl);
fclose($file);
这就是我得到的:
实验1
警告错误:ftp_connect():php_network_getaddresses: getaddrinfo失败了:Beim Datenbankaufruf ist ein nicht behebbarer Fehler aufgetreten。 (德语为"数据库调用结果 [path]
中无法解决的错误警告错误:ftp_login()要求参数1为resource,boolean 在[路径]中给出
布尔(假)
NULL
实验2警告错误:fopen():php_network_getaddresses:getaddrinfo失败:未知主机。在[路径]
警告错误:fopen(ftp://...@tascloud.de/test.txt):无法打开 stream:php_network_getaddresses:getaddrinfo failed:Unknown Host。 在[路径]
警告错误:fread()要求参数1为resource,boolean 在[路径]中给出
实验3
实验3导致创建一个包含鱿鱼错误页面的html源代码的txt文件
访问被拒绝。
访问控制配置可防止您的请求被允许 此时。如果您有这种感觉,请与您的服务提供商联系 不正确。
您的缓存管理员是root @ localhost。