よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

【CentOS7】apache2.4.20 Virtualhostの設定

今週夏休みを取得しました。取り立てて遠出する予定はなかったが、有意義に過ごすことが出来たと思う。但し、リラックスしすぎて久しぶりにブログを更新しようとしたのだが、ネタが思い浮かばなかった。。。
すまん。嘘だ。本当はネタなんて鮮度の良さそうなものではなく、「わからない事が多すぎて、訳がわからない」状態に陥ってしまっている。まともなエンジニアになる為の道はまだまだ険しそうだ。とりあえず今日のテーマは以下の感じで展開する。

Virtualhostを設定してapacheを運用する

【今日のお台】
サーバA→ifcfg-eno0 172.20.1.10 (unknown.com)
→ifcfg-eno0:1 172.20.1.20 (engineer.com)

こんな感じでLinux 7とapache2.4.20を設定していこうと思う。

複数IPの設定

まずは複数IPを設定する。なんだかんだでCent7に複数IP設定するの初めてなんだが…

#cd /etc/sysconfig/network-script/
#cp -p ifcfg-eno0 ifcfg-eno0:1
#vi ifcfg-eno0:1
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE=no
IPV4_FAILURE_FATAL="yes"
NAME="eno0:1"
DEVICE="eno0:1"
ONBOOT=yes
DNS1="*.*.*.*"
DOMAIN="engineer.com"
DNS2=*.*.*.*
IPADDR=172.20.1.20
PREFIX=16
#systemctl restart network

nmcliなりifcfgで確認して、反映されてればおk。最初、systemctl restart NetworkManagerを実行したけど、反映されなくてOSを再起動してました。たぶん、nmcli使って変更しないと、NetworkManagerのリスタートじゃ反映されないんだろうかね。CentOS7についてはそのうちちゃんと調べるつもりなので、今はシカトで。。

apacheの設定

#cd /usr/local/apache2/conf
#vi httpd.conf

----中略-----
Listen 172.20.1.10:80
Listen 172.20.1.20:80

----中略-----
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

extraディレクトリ以下の、httpd-vhosts.confを使うので、httpd.confの該当箇所コメントアウトを外します。後、Listenに新しくVirtualhostに設定するIPを記述します。これ忘れるとアクセス出来ないので注意。

でお次は以下ファイルを編集します。ざっくりの設定は以下ですが、詳細はサーバごとに変えてください。

<VirtualHost 172.20.1.10:80>
    DocumentRoot "/usr/local/apache2/htdocs/unknown/"
    ServerName unknown.com
    ServerAlias unknown1.example.com
    ErrorLog "logs/unknown-error_log"
    CustomLog "logs/unknown-access_log" common
    DirectoryIndex index.html index.htm index.php
    <Directory "/usr/local/apache2/htdocs/unknown/">
        AddType text/xml .rdf
        AddType text/html .shtml .inc
        AddOutputFilter INCLUDES .shtml .inc
        Options Includes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 172.20.1.20:80>
    DocumentRoot "/usr/local/apache2/htdocs/engineer/"
    ServerName engineer.com
    ServerAlias engineer1.example.com
    ErrorLog "logs/engineer_log"
    CustomLog "logs/engineer-access_log" common
    DirectoryIndex index.html index.htm index.php
    <Directory "/usr/local/apache2/htdocs/engineer/">
        AddType text/xml .rdf
        AddType text/html .shtml .inc
        AddOutputFilter INCLUDES .shtml .inc
        Options Includes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

こんな感じで各々のサイトにアクセスできればオッケーです。