サブドメインは、ドメイン名の前に好きな文字列を追加して、全く別ドメインとして動作を指定できる。ドメイン一つでいくつかのサイトを運営できるので、便利。

例えば、kajindowsxp.comのドメインを取得していたとき、hello.kajindowsxp.comのサブドメインを利用してドキュメントルートに全く別のフォルダを割り当てることができる。

環境

  • AWS EC2 (Debian GNU/Linux 10)
  • WordPress Certified by Bitnami

DNSにサブドメインを登録する

お名前ドットコムのDNSを利用する場合では以下

ホスト名のところに利用したいサブドメイン、VALUEには元から使っている静的IPを挿入する。

接続先情報を記述

SSH接続を済ませたあと、

/opt/bitnami/apps/wordpress/conf/httpd-vhosts.confを開き下記を記述。既にあるものは消して良い。例としてこのサイトのドメイン(kajindowsxp.com)が載っているが適宜書き換えること

<VirtualHost *:80>
    ServerName hello.kajindowsxp.com
    ServerAlias hello.kajindowsxp.com
    DocumentRoot "/home/bitnami/hello"
<Directory "/home/bitnami/hello">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfVersion < 2.3>
                Order allow,deny
                Allow from all
        </Ifversion>
        <IfVersion >= 2.3>
                Require all granted
        </IfVersion>
</Directory>
Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

Includeする

bitnami AMIでは

  1. /opt/bitnami/apache2/conf/bitnami/bitnami.conf
  2. /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf

の順にincludeが発生している。2にさっき記述した接続先情報を読み込むように設定する。以下を追記すればOK

Include /opt/bitnami/apps/wordpress/conf/httpd-vhosts.conf

Apacheの再起動

下記コマンドを実行

sudo /opt/bitnami/ctlscript.sh restart apache

転送先ファイルのhtmlを作成

DocumentRootに指定したフォルダにindex.htmlを作成する

<!DOCTYPE html>
<html>
<body>
  <a>hello test</a>
</body>
</html>

ブラウザからサブドメインにアクセスし、hello testが表示されたら成功

トラブルシューティング

Forbidden が表示される

You don’t have permission to access this resource.

DocumentRootへのアクセスをApacheが拒否している。

「接続先情報を記述」の際にディレクトリを正しく指定したかを確認する

bitnamiのトップ画面(?)が表示される

メインのドメインにアクセスしようとしたら、Awesome! WordPress is now installed.と褒められたけど困ってしまった

デフォルトのDocumentRootが/opt/bitnami/apache2/htdocsを参照していることが原因なので、既定のVertualHost80番ポートと、SSL化している場合は443ポートの項目も編集しなければいけない

/opt/bitnami/apache2/conf/bitnami.confを編集する

<VirtualHost _default_:40>
  DocumentRoot "/opt/bitnaim/apache2/htdocs"
  SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
 <Directory "/opt/bitnami/apache2/htdocs">
    Options Indexes FollowSymLinks

変更前
変更後

<VirtualHost _default_:40>
  DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
  SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
 <Directory "/opt/bitnami/apps/wordpress/htdocs">
    Options Indexes FollowSymLinks