我有一个脚本,它使用 Plesk API 创建 FTP 帐户。在我们搬到新供应商的新 VPS 之前,该脚本运行良好。
该脚本不再起作用,我收到如下错误:
cURL 错误号:7 cURL 错误:无法连接到 xx.xx.xxx.xxx 权限被拒绝。
似乎 cURL 不起作用。我尝试的是在 PLESK 中将 php 支持从 fastCGI 更改为 Apache 模块,错误消息消失了,但是 PLESK API 什么也没做,尽管页面的加载时间比我使用 fastCGI 时长得多,所以看起来像它做某事。
我还在防火墙中添加了端口 8443 用于传入和传出。
我正在使用 PLESK 11,我的脚本看起来像这样。
// Plesk login gegevens
$host = "**********";
$login = "**********";
$pass = "**********";
$port = 8443;
// Maak de FTP map aan
$data =<<<EOF
<packet version="1.6.3.5">
<ftp-user>
<add>
<name>John</name>
<password>Doe1234</password>
<home>/private/John_Doe/</home>
<create-non-existent>true</create-non-existent>
<webspace-id>1</webspace-id>
</add>
</ftp-user>
</packet>
EOF;
sendCommand($data, $login, $pass, $host, $port);
function write_callback($ch, $data)
{
// echo $data;
return strlen($data);
}
function sendCommand($data, $login, $passwd, $host, $port=8443)
{
echo $data;
$script = "enterprise/control/agent.php";
$url = "https://$host:$port/$script";
$headers = array(
"HTTP_AUTH_LOGIN: $login",
"HTTP_AUTH_PASSWD: $passwd",
"HTTP_PRETTY_PRINT: TRUE",
"Content-Type: text/xml",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, &$headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'write_callback');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$result = curl_exec($ch);
if (!$result)
{
echo "\n\n-------------------------\ncURL error number:".curl_errno($ch);
echo "\n\ncURL error:".curl_error($ch);
}
curl_close($ch);
return;
}