サブドメインは、ドメイン名の前に好きな文字列を追加して、全く別ドメインとして動作を指定できる。ドメイン一つでいくつかのサイトを運営できるので、便利。
例えば、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では
- /opt/bitnami/apache2/conf/bitnami/bitnami.conf
- /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