私は名前ベースのホスティングをしていて、それをmy.address.com
と呼びましょう。私の友人は「プレーン」アドレスaddress.com
を持ち、SSH経由でアクセスできる仮想マシンをくれました。
彼はまた、ポートでいくらか魔法をかけました、そして今、Apacheをインストールした後、私は/var/www
を通してmy.address.com
にアクセスできました。
それで、問題は、どうすればtest.my.address.com
のようなサブドメインを作成できるのでしょうか。
ApacheのListenディレクティブ には魔法があるはずですが、理解できません。また、Apacheを使用してローカルで利用可能なサイトを作成する方法も知っていますが、同じではありません。
サブドメインを作成できるようにするには、いくつかのことを確認する必要があります。
他のユーザーがtest.my.address.com
に到達できるようにするには、まずその名前を仮想マシンのIPアドレスに解決できる必要があります。どうすればできますか?
友人がすでに行っている可能性が最も高いことは、address.com
ゾーンに Aレコード を作成することでした。これは、my
がVMのIPアドレスを指すようにします。
ここまでは順調ですね。しかし、test.my
はどうですか?まだエントリがない可能性があります。
友達は、ゾーンに*.my
を追加することもできます(同じIPアドレスをポイントすることもできます)。次に、something.my.address.com
へのすべてのリクエストがVMに送信されます。すごい!
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.com
とSudo invoke-rc.d Apache2 restart
を忘れないでください。