・Apacheでバーチャルホストで複数のサイトを運用する方法を知りたい。
・具体的な手順を分かりやすく教えてほしい。
こういった疑問に答えます。
本記事の内容
- AlmaLinux 8のApache2にバーチャルホストを設定して1台のサーバーで複数サイトを運用する
この記事を書いている私は、某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 8月 21 18:00:20 SV-ALTAIR systemd[1]: httpd.service: Succeeded. 8月 21 18:00:20 SV-ALTAIR systemd[1]: Stopped The Apache HTTP Server. 8月 21 18:00:20 SV-ALTAIR systemd[1]: Starting The Apache HTTP Server... 8月 21 18:00:20 SV-ALTAIR systemd[1]: Started The Apache HTTP Server. 8月 21 18:00:20 SV-ALTAIR httpd[229054]: Server configured, listening on: port 80
確認