Apache2.4バーチャルホスト設定
Apache2.4のバーチャルホスト設定の元になっているファイルは/etc/httpd/conf/httpd.confとなります。そのファイル内でいろいろなファイルをincludeしています(ファイル内でテキスト検索するとわかります)。既にCentOS7でLAMPが出来た状態を前提として設定していきます。独自ドメインを使いたい場合、浸透時間を考慮して、ネームサーバーの設定かDNSレコード編集を作業の一番最初に行うことを強く推奨します。DNSレコードのTTLについて、作業中は最短の60などに変えておき、作業が終わったら3600などに変えます。
IPアドレスや自動割当されている初期ホスト名へのリクエスト拒否の設定も行います。
- Apache2.2は、A
- pache2.4と設定が異なる部分があります。別の記事を探してください。
- SSL(TLS)は何も考慮していません。
ドキュメントルートとバーチャルホスト専用のログディレクトリを作る
デフォルトのドキュメントルートへ移動。独自ドメインを設定するドキュメントルートとログディレクトリを新たに作る。※ -p オプションは、末尾のディレクトリに至るまでの上位ディレクトリを自動で作るため。
cd /var/www
mkdir -p hogehoge.com/{public_html,logs}
パーミッションをユーザーapache、グループnissyで念のために再帰的設定する。尚、Linuxの一般ユーザー作成は、CentOS7でLAMPにて参照ください。
chown -R apache:nissy /var/www/hogehoge.com/public_html
/var/wwwのグループと部外者の編集権限を念のために再帰的に禁止する
chmod -R 755 /var/www
表示テスト用のコンテンツを新しく作ったドキュメントルートでindex.phpとしてphpinfo()でつくる。※サーバーの各種設定が丸見えにならない様に、作業が終わったら必ずファイルを削除してください。
//編集
vi /var/www/hogehoge.com/public_html/index.php
//追記
<?php echo 'I am /var/www/hogehoge.com/public_html/index.php <br>'.phpinfo(); ?>
バーチャルホストを構成する
vi /etc/httpd/conf.d/vhost-hogehoge.com.conf
vhost-hogehoge.com.conf ファイル内の記載例。※日を改めてログローテーションも追記します。
<VirtualHost *:80>
ServerName hogehoge.com
ServerAlias www.hogehoge.com
DocumentRoot /var/www/hogehoge.com/public_html
ErrorLog /var/www/hogehohge.com/logs/error.log
CustomLog /var/www/hogehoge.com/logs/requests.log combined
</VirtualHost>
httpd再起動
systemctl restart httpd
IPアドレスと初期ホスト名へのhttpリクエストを禁止
vhost-00.conf 作って編集します。
vi /etc/httpd/conf.d/vhost-00.conf
以下の様に、全ホスト名を拒否する設定を行います。※他のvhost-○△×.confが、vhost-00.confよりも先に読み込まれている前提です。脆弱性を減らすためにも必ず設定してください。
<VirtualHost *:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>