1

Plesk API を使用して FTP アカウントを作成するスクリプトがあります。新しいプロバイダーの新しい VPS に移行するまで、スクリプトは完全に機能していました。

スクリプトが機能しなくなり、次のようなエラーが表示されます。

cURL エラー番号:7 cURL エラー:xx.xx.xxx.xxx への接続に失敗しました 権限が拒否されました。

cURL が機能しないようです。私が試したのは、phpサポートをfastCGIからPLESKのApacheモジュールに変更することで、エラーメッセージは消えましたが、ページの読み込み時間はfastCGIを使用しているときよりもはるかに長いにもかかわらず、PLESK APIは何もしません。それは何かをします。

また、送受信用にファイアウォールにポート 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;
}
4

3 に答える 3

2

私はpleskやLinuxの人間ではありませんが、このディスカッションで自分の役割を果たしたいと思います。

PleskAPIを使用してFTPアカウントを作成するスクリプトがあります。新しいプロバイダーで新しいVPSに移行するまで、スクリプトは完全に機能していました。

このステートメントは、問題はコードではなく、VPSにあることを明確に示しています。

多分問題!

1) API-RPCを介してParallels Panelを更新するためのクライアント権限、管理者の資格情報を試してください。

見つかった問題:plesk9.2。したがって、次のリリースで修正される可能性がありますが、よくわかりません。ソース

2)SElinuxが無効になっているかどうかを確認し、無効になっていない場合は確認します。次の質問は、SElinuxを無効にする方法です。答えはここに十分に文書化されています

3)mod_suphpをインストールし、チュートリアルに従う必要があります。これで動作します。詳細については、こちらをご覧ください。

上記で要約しましたが、それが役立つことを期待している人はほとんどいません。

于 2012-11-05T22:29:21.723 に答える
0

よくわかりませんが、以下の URL を参照してください。非常に役立つと思います。

Plesk API の異常な HTTP ヘッダー

TRiGによるPlesk API の Unusual HTTP ヘッダーによると

またはそれを読む

以下上記URLによるrdoによる回答

  1. Plesk は独自のヘッダーを使用します。カスタム http リクエストでは、有効なヘッダーを追加できます。たとえば、一部の Web サーバーは「powered by: xxxx」などの独自のヘッダーを追加するため、問題ありません。

  2. pretty xml 出力には pretty print ヘッダーが必要です。

  3. HTTP_AUTH_LOGIN ヘッダーには、パネル ユーザーのログインが含まれます。HTTP_AUTH_PASSWD ヘッダーには、パネル ユーザーのパスワードが含まれています。CURLOPT_USERPWD は必要ありません。

  4. これらのオプションを使用してみてください: $ch = curl_init();

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');

    curl_setopt($ch, CURLOPT_POSTFIELDS, $packet);

    curl_setopt($ch, CURLOPT_TIMEOUT, 1200); // 20分待つ

    $response = curl_exec($ch);

于 2012-11-07T15:58:01.633 に答える
0

ホストを変更したことを覚えていたと仮定すると、移動後に plesk ユーザーとパスワードが再作成されましたか? スクリプトの資格情報を使用して VPS で直接 plesk にログインして、アカウントが正常であることを確認してください。

于 2012-11-07T15:58:06.907 に答える