私は専用サーバー上でホストされる Web ベースのアプリを顧客に提供しており、クライアントは Web サイトに登録し、URL : mywebsite.com/client を使用してサービスを利用できます。
サービスは実行されており、問題はありません。
実は、アプリに新しいオプションを追加して、顧客が独自のドメインを使用できるようになりたいと思っています。しかしアプリはまだ私のサーバーでホストされています!
ここで、PHP スクリプトを使用して、新しいドメインをサーバーに自動的に追加する方法を知りたいと思います (ドメインはネーム サーバーを指す必要があることはわかっています)。
クライアントはドメインを追加し、NS URLとIPを取得し、ドメインネームサーバーを変更した後、ドメイン名を使用してサービスを利用できるようになります。
そのためには Apache 構成ファイルを編集する必要があることは確かですが、どのような変更を行う必要があるのか全くわかりません。
一般的に、すべてのクライアント ドメインを、アプリがホストされているドメインにアドオン ドメインとして追加したいと思います。そうすれば、ドメイン名をユーザー識別子として取得できます。
*私はCentosとCentos Webパネルを使用しています
答え1
これを可能にするソリューション アーキテクチャは無数にありますが、ここでは非技術的な側面と技術的な側面にある 2 つのアーキテクチャについて概説します。
ここで探しているのは、ホスティング会社のソフトウェアなどと呼ばれるものですが、ソフトウェア システムと統合するための API を備えたシステムが必要です。
非技術的な面では、人々が使っているのを聞いたことがありますhttps://www.whmcs.com/、これは一般的な CMS、課金、Web サーバー、データベース サーバーと統合されているとわかっています。独自のドメイン設定を管理するには、DNS サーバーも管理するか、API を備えたサーバーを使用する必要があります。たとえば、Amazon Route53 を使用するか、WHMCS に独自の DNS サーバー (BIND など) を管理させることができます。
技術的な面では、ドメイン名を含む Web サーバー設定を Ansible で管理しており、これをカスタム開発された PHP ベースのコントロール パネルと統合する予定です。Ansible と PHP は Amazon Route 53 API を直接使用できるため、完全な自動化も可能になります。
いずれにせよ、質問の言い方次第では、組み立てるべきアーキテクチャの要素が多数あり、実装をテストする必要があることがわかります。頑張ってください。