IDCFクラウドのUbuntu16.04サーバーでサブドメインを使えるようにするまで


作業環境

OS:Windows 10 Pro Build 16299.248
コンソール:Tera Term v.4.98 64bit

サーバー

OS:Ubuntu 16.04
Apache:2.4.18
DNS:お名前.com
サーバーへの接続:ssh

前置き

私は今回初めてUbuntuサーバーに触れてます。というかLinuxサーバー自体初心者です。ですのでここに書いてある内容で間違いや説明不足な部分もあると思いますがご容赦下さい。

作業の流れ

Apache2のインストールまでの作業と初期設定、お名前.comでのドメイン登録についてはここでは省略します。

ポート開放

いくら下に書かれた作業をこなしても80番ポート、空いてなきゃ何の意味もないです。(HTTPSなら443番ポート)
IDCFクラウドのコントロールパネルから80番ポートを開放してください。

Apache等の情報を非表示にする

ターミナル
sudo vim /etc/apache2/conf-available/security.conf

25行目あたりにServerTokensがあるのでこれをProdにする
続いて35行目辺りのServerSignatureもOffにする

sites-available内にconfファイル作成

ここではファイル名はhoge.confとします。

ターミナル
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/hoge.conf
sudo vim /etc/apache2/sites-available/hoge.conf
hoge.conf
<VirtualHost *:80>
    ServerNmae (サブドメインの名前)
    ServerAdmin (管理者の連絡先)
    DocumentRoot (コンテンツの場所)
    ErrorLog (エラーログのファイルの場所)
    CustomLog (アクセスログのファイルの場所)
</VirtualHost>
<Directory (コンテンツの場所)>
    Options Indexes
    Options FollowSymLinks
    AllowOverride none
    Require all granted
    Order allow,deny
    Allow from all
</Directory>

一応最低限こんな感じですね。たぶん…。
それぞれのタグの意味はググればどこにでも書いてあるのでここではその辺の説明は省略します。

設定の反映

ターミナル
sudo a2ensite /etc/apache2/sites-available/hoge.conf
sudo service apache2 reload

これでOS側の作業はおしまいです。
ちなみにconfファイルに問題があると、apache2でエラーが起きます。
実は今回hoge.confのDirectoryのOptionsなんですが、いろんなページで見てたら1行で書いていたんですね。でもその通りやったらapache2のリロードの際にエラー起こしちゃって、それで2行にしたら正常に行ったのでこうしました。

Aレコードの登録

お名前.comの人はここ見てやって下さい。下手な説明よりよっぽどいいです

トラブルシューティング

私が遭ったトラブルです。
まず上に書いてあること最低限やったかを確認し、それでもダメだった場合ここ見てください。

ページが開かない

DocumentRootで指定したフォルダにindex.htmlを適当に作ってください。なくても普通は404が出てくれると思うけど…。あと、もしAレコード登録直後でしたら、すぐには開けないので時間置いてアクセスしてみてください。

apache2が起動しない

ターミナル
sudo service apache2 status

ここのログ読んでみてください。confファイルの内容に問題があるとここに出ます。

最後に

私もLinuxでサーバーやったの初めてなので詳しい人からすると「なんで!?」みたいな部分も多々あると思います。
でも、私と同じ初心者の皆さんがこの記事見てサブドメインに挑戦してくれたらなと思います

参考