1

私は請求サーバー (サーバー 1) とコントロール パネル サーバー (サーバー 2/Virtualmin) があるプロジェクトに取り組んでおり、請求システムは変数を受け入れるサーバー 2 でスクリプトを実行する必要がありますが、サーバー 2 のファイルには認証。

次のように、別のサーバーでシェルコマンドを使用して、必要なことを達成できました。

wget --http-user=root --http-passwd=pass --no-check-certificate https://example.com:10000/virtual-server/remote.cgi?program=create-domain&domain=example.net&pass=123&default-features

これに関する問題は、請求サーバーが特定の PHP ファイルしか実行できず、サーバーに wget がインストールされていないため、shell_exec では実行できないことです。

PHP cURL を試してみましたが、使い方がよくわからず、うまくいきませんでした。これは私が試したものです:

$serverip = "example.com:10000";
$domain = "example.net";
$password = "123";

$ch = curl_init("https://$serverip/virtual-server/remote.cgi?program=create-domain&domain=$domain&pass=$password&default-features");

$userpwd = 'root:pass';

curl_setopt($ch, CURLOPT_USERPWD, $userpwd);

curl_exec($ch);
curl_close($ch);

さらに詳しい情報が必要な場合は、お知らせいただければ幸いです。事前に感謝します。これは非常に奇妙に思えます。

EDIT ONE これは私が試した新しいコードですが、まだ機能していません。

<html>
<h1>Provision Test</h1><hr />

<?php

$domain = "example.net";
$password = "123";
$serverip = "example.com:10000";

$ch = curl_init();

$userpwd = 'root:pass';

curl_setopt($ch, CURLOPT_URL, "http://{$serverip}/virtual-server/remote.cgi?program=create-domain&domain={$domain}&pass={$password}&default-features");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $userpwd);

curl_exec($ch);
curl_close($ch);

?>

</html>

編集 2 上記のコード (編集 1) は正常に実行されているように見えますが、CLI 経由でのみ実行され、Web インターフェイス経由で試行しても何も起こらず、スクリプトは curl_init(); に到達すると停止します。どんなアイデアでも大歓迎です。

4

0 に答える 0