web-dev-qa-db-ja.com

名前ベースの仮想ホストにサブドメインを作成するにはどうすればよいですか?

私は名前ベースのホスティングをしていて、それをmy.address.comと呼びましょう。私の友人は「プレーン」アドレスaddress.comを持ち、SSH経由でアクセスできる仮想マシンをくれました。

彼はまた、ポートでいくらか魔法をかけました、そして今、Apacheをインストールした後、私は/var/wwwを通してmy.address.comにアクセスできました。

それで、問題は、どうすればtest.my.address.comのようなサブドメインを作成できるのでしょうか。

ApacheのListenディレクティブ には魔法があるはずですが、理解できません。また、Apacheを使用してローカルで利用可能なサイトを作成する方法も知っていますが、同じではありません。

27
scythargon

サブドメインを作成できるようにするには、いくつかのことを確認する必要があります。

DNS

他のユーザーがtest.my.address.comに到達できるようにするには、まずその名前を仮想マシンのIPアドレスに解決できる必要があります。どうすればできますか?

友人がすでに行っている可能性が最も高いことは、address.comゾーンに Aレコード を作成することでした。これは、myがVMのIPアドレスを指すようにします。

ここまでは順調ですね。しかし、test.myはどうですか?まだエントリがない可能性があります。

友達は、ゾーンに*.myを追加することもできます(同じIPアドレスをポイントすることもできます)。次に、something.my.address.comへのすべてのリクエストがVMに送信されます。すごい!

Apache仮想ホスト

VMに到達すると、Apacheはリクエストの処理方法を知る必要があります。ここで、Apache HTTPサーバーの Virtual Hosts 機能を使用します。

私は通常Debianで実行するので、/etc/Apache2/sites-availableの設定例でこれを説明します。 test.my.address.comというファイルを用意して、情報を入力してみましょう。

<VirtualHost *:80>
        ServerName test.my.address.com
        ServerAdmin [email protected]

        DocumentRoot /var/www/test.my.address.com/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test.my.address.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${Apache_LOG_DIR}/test.my.address.com.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${Apache_LOG_DIR}/test.my.address.com.access.log combined
</VirtualHost>

このファイル内のキー設定ServerNameディレクティブ です。これは、このserverをどの名前で使用できるようにするかをApacheに伝えます。追加の名前は ServerAliasディレクティブ で指定できます。

Debianも使用している場合は、ファイルを作成した後でSudo a2ensite test.my.address.comSudo invoke-rc.d Apache2 restartを忘れないでください。

33
Der Hochstapler