この Stack Overflow question threadのアドバイスに従いましたが、問題が発生し続けています。
次のエラー メッセージが表示されます: サポートされていないプロトコル: sftp
これが私のコードです:
$ch = curl_init();
if(!$ch)
{
$error = curl_error($ch);
die("cURL session could not be initiated. ERROR: $error."");
}
$fp = fopen($docname, 'r');
if(!$fp)
{
$error = curl_error($ch);
die("$docname could not be read.");
}
curl_setopt($ch, CURLOPT_URL, "sftp://$user_name:$user_pass@$server:22/$docname");
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($docname));
//this is where I get the failure
$exec = curl_exec ($ch);
if(!$exec)
{
$error = curl_error($ch);
die("File $docname could not be uploaded. ERROR: $error.");
}
curl_close ($ch);
curl_version() 関数を使用して curl 情報を確認したところ、サポートされているプロトコルの配列に sftp が含まれていないようであることがわかりました。
[version_number] => 462597
[age] => 2
[features] => 1597
[ssl_version_number] => 0
[version] => 7.15.5
[host] => x86_64-redhat-linux-gnu
[ssl_version] => OpenSSL/0.9.8b
[libz_version] => 1.2.3
[protocols] => Array
(
[0] => tftp
[1] => ftp
[2] => telnet
[3] => dict
[4] => ldap
[5] => http
[6] => file
[7] => https
[8] => ftps
)
これは、使用している cURL のバージョンが古くなっているためでしょうか、それとも SFTP プロトコルがまったくサポートされていないだけなのでしょうか?
どんなアドバイスでも大歓迎です。