7

cpanel で管理されている Linux ベースの共有ホスティングでは、cpanel のログイン情報や FTP 情報がわかっている場合に、サイトのアドオン ドメインをある程度確実に作成するプログラムによる方法はありますか?

注: この場合、PHP と cpanel に興味があります。

4

4 に答える 4

11

私を正しい軌道に乗せてくれた@Alex Cに感謝します。以下は多くの共有ホスティング プランで機能しますが、最初にこれに関するポリシーを確認することをお勧めします。

以下の例では、共有ホスティング プランのメイン ルート ドメインとして root.com を購入済みです。次に、addon.com というドメインを追加したいと考えていました。ユーザー名を addon_user に、パスを addon_pass に設定しました。また、新しいドメインのファイルを public_html/addon.com に配置しました。これを実現するために Cpanel に接続するために、解析して再利用できるように、cpanel ホームページの URL (ホスティング プランによって異なります) を入力しました。また、root.com の cpanel ユーザー/パス情報を root_user および root_pass として提供しました。

最後の echo ステートメントは、機能したかどうかに関係なく、単なる出力応答です。ただし、失敗したかどうかを解析したい場合は、おそらく「追加されていません」というフレーズを解析できます。

一部のホスティング プランでは file_get_contents の URL への接続がブロックされるため、fopen($sURL, 'r') または Curl API に切り替える必要がある場合があります。

<?php

// @ input vars - change these as you see fit
$sPastedCpanelHomepageURL = 'https://root.com:2083/frontend/x3/index.html';
$sNewDomain = 'addon.com';
$sNewDomainUser = 'addon_user';
$sNewDomainPass = 'addon_pass';
$sNewDomainFolder = 'public_html/addon.com';
$sCPanelUser = 'root_user';
$sCPanelPass = 'root_pass';

// @ processing
$sCP = dirname($sPastedCpanelHomepageURL);
$sCP = str_replace('://','://' . $sCPanelUser . ':' . $sCPanelPass . '@',$sCP);

$sTask = '/addon/doadddomain.html?';

$sNewDomain = urlencode($sNewDomain);
$sNewDomainUser = urlencode($sNewDomainUser);
$sNewDomainPass = urlencode($sNewDomainPass);
$sNewDomainFolder = urlencode($sNewDomainFolder);
$sCPanelUser = urlencode($sCPanelUser);
$sCPanelPass = urlencode($sCPanelPass);

$asData = array(
  'domain' => $sNewDomain,
  'user' => $sNewDomainUser,
  'dir' => $sNewDomainFolder,
  'pass' => $sNewDomainPass,
  'pass2' => $sNewDomainPass
);
$sData = http_build_query($asData);

$s = file_get_contents($sCP . $sTask . $sData);

echo "$s\n";
于 2010-07-10T20:23:57.977 に答える
7

cPanel API を使用できます。ドキュメントはこちらです。読むのはそれほど簡単ではありません.PHPでそれらを試してみたい場合は、無料のPHPクラス(これらのAPIをバックグラウンドで使用する)を使用できます.cPanelフォーラムにあるものもあれば、ここにあるものもあります.

于 2010-07-10T19:26:49.543 に答える
3

DNS サーバーが管理している場所でホストされているかどうか、および DNS エントリを変更するための API (または DNS サーバーの構成自体へのアクセスのみ) があるかどうかによって異なります。私は cPanel ユーザーではありませんが、「いいえ」に傾倒します。

DNS サービス システムを制御する環境では、コードを記述して DNS レコードにエントリを追加し (ただし、明らかに伝播にはまだ時間がかかります)、新しいサイトを に投入するのは簡単sites-enabledです。安全かつ安全に行うことも非常に難しい場合がありますが、これで終わりです。しかし、あなたが cPanel を通じてその能力を持っているとは思えません。

頭に浮かんだのは、キャッチオール ドメインを使用する機能 (Apache 構成ファイルに、指定されていないすべてのサブドメインが指す可能性のあるデフォルトのサイト エントリがある) と、そこからどのサイトを実行するかをプログラムで決定する機能ですが、これには非常に多くの欠点があります。それを見てもお勧めしないアプローチ。

于 2010-07-10T15:47:08.097 に答える
2

以前は fopen でこれを行っていました。正確な URL を思い出せず、cPanel にアクセスできなくなりましたが、使用中の URL を確認すると、次のようなことができるはずです。

fopen("https://username:pass@domain.com:1084/cpanel/doaddparked.html?domain=domain.com", "r");

(パスとポートを確認する必要がありますが、これらは覚えていません)-最後にこれを行ったのは2年前のプロジェクトで、サインアップでcpanelを介してメールを作成しました-それ以来変更されている可能性がありますが、最も簡単な方法。当時、彼らは間違いなく POST ではなく GET データに取り組んでいました。POST に変更された場合は、CURL を調べる必要があるかもしれません。

于 2010-07-10T16:01:17.137 に答える