web-dev-qa-db-ja.com

サブドメイン名を動的に作成するにはどうすればよいですか?

PHP、Python、Perlなどのスクリプト言語を使用してサブドメイン名を動的に作成および削除できるようにしたいと思います。私はApacheをWebサーバーとして使用しています

例:

http://subdomain.example.com
http://subdomain2.example.com

ありがとう

1
Yogi

サブドメインごとに、DNS設定でCNAMEエントリ/ Aレコードを作成できます

CNAMEレコードは、ドメインのサブドメインを制御できるようにするドメイン管理設定のレコードです。

自動化する登録とともに、登録時にユーザーごとに実行されるスクリプトを作成できます。

Apacheのステップバイステップのプロセスについては、このリンクも参照できます。

Apacheでサブドメインを設定する方法

代替ソリューション

より簡単な ワイルドカードソリューション、Alnitakによって提供 を参照することもできます。

既知のサブドメインごとに特定のDNS(CNAMEまたはA/AAAA)エントリを使用するか、*。exampleを受け入れるワイルドカードDNSエントリを使用できます。 com:

$Origin example.com
foo     IN A 12.34.6.78
bar     IN A 12.34.6.78

または

$Origin example.com
*       IN A 12.34.6.78

この後者の利点は、サービスの実行後にDNSまたはApacheの構成を変更する必要がないことです。欠点は、そのようなワイルドカードルックアップはすべて(定義上)同じIPアドレスを返す必要があることです。

Apacheの構成は、エンドユーザーの制御とセキュリティの両方の要件によって異なります。ユーザーがサーバー上でCGIスクリプトを実行する権限を持っている場合は、それを安全に実行するために追加のセットアップが必要になることに注意してください。

コンテンツが静的であるか動的であるかに応じて、これは構成にも影響します。

  1. mod_vhost_alias を使用して、個々の仮想ホストをサーバー上の個々のディレクトリにマップします。

  2. 本当に必要な場合は、既知のサイトごとに個別の<VirtualHost>セクションを作成しますが、新しいユーザーがサインアップするたびにApacheを再起動する必要があります。

  3. 単一の<VirtualHost>を使用してから、出力をレンダリングするスクリプトで要求されたURLのホスト名部分($SERVER_NAME環境変数から)を調べて、表示するユーザーのコンテンツを特定します。

2
M.N

サブドメインの作成はApacheに組み込まれており、大量のvhostingを調べてください。具体的には: http://httpd.Apache.org/docs/2.0/vhosts/mass.html

次に行う必要があるのは、規則を考え出し、必要に応じてスクリプトにディレクトリを作成させることだけです。ただし、技術的には、Apacheの一括仮想ホスト構成のセットアップから始めたいと考えています。

1
Vid Luther

これは実際にはDNSの質問であり、そのWebサーバーを指す* .example.comレコードがない限り、Apacheの質問ではありません。クライアントがサブドメイン??。example.comを解決できない場合、Webサーバーは関係ありません。

1
Greeblesnort

実際にサブドメインを作成するのではなく、ワイルドカードサブドメインを使用するだけで、 http://anything.example.com を使用できます。

1
Ben R

python Webサイトで使用した別の解決策は、ミドルウェアのサブドメインを検査することです。次に、サブドメインのデータベースと照合して、一致するものが見つかった場合は、リクエストレベル設定を設定します。私が見ているサブドメインのコード。

それは本当にかなりきれいで、非常にうまく機能することができます。私のサイトは現在、350以上の動的サブドメインをサポートしています。

0
Bryan McLemore