そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

AlmaLinux 8のApache2にバーチャルホストを設定、1台のサーバーで複数サイトを運用

※[PR]当ブログの記事の中にはプロモーションが含まれています。

Apacheでバーチャルホストで複数のサイトを運用する方法を知りたい。
・具体的な手順を分かりやすく教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. AlmaLinux 8のApache2にバーチャルホストを設定して1台のサーバーで複数サイトを運用する

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

AlmaLinux 8のApache2にバーチャルホストを設定して1台のサーバーで複数サイトを運用

手順① デフォルトのアクセス拒否用conf作成

cd /etc/httpd/conf.d/
vi virtualhost-sv-altair.conf
<VirtualHost _default_:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>

手順② テスト用バーチャルホスト1個目のconf作成

test01.sv-altair.planet.space.com.conf
## VirtualHost01 test01.sv-altair.planet.space.com
<VirtualHost *:80>
ServerName test01.sv-altair.planet.space.com
ServerAlias www.test01.sv-altair.planet.space.com
ServerAdmin webmaster@test01.sv-altair.planet.space.com
DocumentRoot "/home/www/html/test01"

<Directory "/home/www/html/test01">
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

ErrorLog logs/test01.sv-altair.planet.space.com-error_log
CustomLog logs/test01.sv-altair.planet.space.com-access_log combined
</VirtualHost>

手順③ テスト用バーチャルホスト2個目のconf作成

test02.sv-altair.planet.space.com.conf
## VirtualHost02 test02.sv-altair.planet.space.com
<VirtualHost *:80>
ServerName test02.sv-altair.planet.space.com
ServerAlias www.test02.sv-altair.planet.space.com
ServerAdmin webmaster@test02.sv-altair.planet.space.com
DocumentRoot "/home/www/html/test02"

<Directory "/home/www/html/test02">
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

ErrorLog logs/test02.sv-altair.planet.space.com-error_log
CustomLog logs/test02.sv-altair.planet.space.com-access_log combined
</VirtualHost>

手順④ ドキュメントルート用ディレクトリ作成

cd /home/www/html
mkdir /home/www/html/test01
mkdir /home/www/html/test02

手順⑤ テスト用index.htmlの作成

vi /home/www/html/test01/index.html
vi /home/www/html/test02/index.html
chown -R www:www /home/www/html/

確認

[root@SV-ALTAIR html]# httpd -t
Syntax OK

手順⑥ httpd再起動して設定を反映

systemctl restart httpd
systemctl status httpd
[root@SV-ALTAIR ~]# systemctl restart httpd
[root@SV-ALTAIR ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-08-21 18:00:20 JST; 6s ago
     Docs: man:httpd.service(8)
  Process: 226961 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 229054 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 24824)
   Memory: 27.2M
   CGroup: /system.slice/httpd.service
           tq229054 /usr/sbin/httpd -DFOREGROUND
           tq229056 /usr/sbin/httpd -DFOREGROUND
           tq229057 /usr/sbin/httpd -DFOREGROUND
           tq229058 /usr/sbin/httpd -DFOREGROUND
           mq229059 /usr/sbin/httpd -DFOREGROUND

 821 18:00:20 SV-ALTAIR systemd[1]: httpd.service: Succeeded.
 821 18:00:20 SV-ALTAIR systemd[1]: Stopped The Apache HTTP Server.
 821 18:00:20 SV-ALTAIR systemd[1]: Starting The Apache HTTP Server...
 821 18:00:20 SV-ALTAIR systemd[1]: Started The Apache HTTP Server.
 821 18:00:20 SV-ALTAIR httpd[229054]: Server configured, listening on: port 80

確認