前稿の手順を基に試しに簡単なWebサーバーを構成してみましょう。
おさらいで手順を列挙すると以下の様になります。
①新規マシンにOSをインストール。
②IPアドレス、ホスト名などの初期設定。
③ソフトウェア・ミドルウェアのインストール。
④ソフトウェア・ミドルウェアの設定。
⑤④付属のツールで設定値のチェック。
⑥サービスの起動。
⑦ファイアウォール・SELinuxなどセキュリティの制限解除。
⑧サーバー側から動作確認。
⑨クライアントマシンから動作確認。
◇本稿の構成。
〇Webサーバー
・ホスト名:web1.stream.server
・アドレス:192.168.128.100/24
・DNS:192.168.128.1
・ゲートウェイ:192.168.128.1
〇クライアント
・ホスト名:client
・アドレス:192.168.128.110/24
・DNS:192.168.128.1
・ゲートウェイ:192.168.128.1
◇手順に沿ってWebサーバーを構築。
①新規マシンにOSをインストール。
②IPアドレス、ホスト名などの初期設定。
上記サーバーの仮想マシンを準備する事が手順①②に当たります。
①②の具体的な方法は「CentOS Stream9のインストール及び初期設定」の章をご覧ください。
・追加設定
それぞれのマシンのhostsファイルにWebサーバーのホスト名を追記します。
[root@client ~]# vi /etc/hosts
192.168.128.100 web.stream.server
③ソフトウェア・ミドルウェアのインストール。
Webサーバー機のマシンに以下のコマンドでhttpdのインストールを行います。
[root@web1 ~]# dnf install -y httpd
CentOS Stream 9 - BaseOS 1.8 kB/s | 4.3 kB 00:02
CentOS Stream 9 - BaseOS 444 kB/s | 5.6 MB 00:12
CentOS Stream 9 - AppStream 7.0 kB/s | 4.4 kB 00:00
CentOS Stream 9 - AppStream 648 kB/s | 14 MB 00:21
CentOS Stream 9 - Extras packages 10 kB/s | 5.4 kB 00:00
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
httpd x86_64 2.4.53-1.el9 appstream 1.5 M
依存関係のインストール:
apr x86_64 1.7.0-11.el9 appstream 123 k
apr-util x86_64 1.6.1-20.el9 appstream 95 k
apr-util-bdb x86_64 1.6.1-20.el9 appstream 14 k
centos-logos-httpd noarch 90.4-1.el9 appstream 252 k
httpd-filesystem noarch 2.4.53-1.el9 appstream 15 k
httpd-tools x86_64 2.4.53-1.el9 appstream 84 k
弱い依存関係のインストール:
apr-util-openssl x86_64 1.6.1-20.el9 appstream 16 k
mod_http2 x86_64 1.15.19-2.el9 appstream 150 k
mod_lua x86_64 2.4.53-1.el9 appstream 62 k
トランザクションの概要
================================================================================
インストール 10 パッケージ
(略)
インストール済み:
apr-1.7.0-11.el9.x86_64 apr-util-1.6.1-20.el9.x86_64
apr-util-bdb-1.6.1-20.el9.x86_64 apr-util-openssl-1.6.1-20.el9.x86_64
centos-logos-httpd-90.4-1.el9.noarch httpd-2.4.53-1.el9.x86_64
httpd-filesystem-2.4.53-1.el9.noarch httpd-tools-2.4.53-1.el9.x86_64
mod_http2-1.15.19-2.el9.x86_64 mod_lua-2.4.53-1.el9.x86_64
完了しました!
インストールが終了すると上記の様なメッセージが表示されます。
④ソフトウェア・ミドルウェアの設定。
引き続き、Apacheの設定ファイルを設定します。
下記を参考に構成を確認及び変更してください。
[root@web1 ~]# cp -p /etc/httpd/conf/httpd.conf{,.org} ←先ずはオリジナルの設定ファイルをコピーして保存します。
次は設定ファイルを確認と修正を行います。
#はコメントアウトと言い、設定項目で#が付いている行は無視されるので、#のついた行を有効化するには行頭の#を外します。
[root@web1 ~]# vi /etc/httpd/conf/httpd.conf #下記の項目を修正、確認。
ServerRoot "/etc/httpd"
Listen 80
DocumentRoot "/var/www/html"
#ServerName www.example.com:80 #←を下記の行の内容に変更。
ServerName web1.stream.server #を外してサーバー名を左記に変更。
DirectoryIndex index.html
AddDefaultCharset UTF-8
上記設定に変更後、wq!で上書き保存し、viの編集モードを終了させます。
続いて、テスト用のindex.htmlファイルを作成してみます。
以下の行はブラウザでは改行している様に見えますが、改行せず一行でコマンドを入力してください。
[root@web1 ~]# echo -n 'This is Web Server Test Page on ' > /var/www/html/index.html
ホスト名をidex.htmlファイルに追記します。
[root@web1 ~]# hostname >> /var/www/html/index.html
index.htmlの記載を確認します。
[root@web1 ~]# cat /var/www/html/index.html
This is Web Server Test Page on web1.stream.server
本稿のWebサーバーの設定は上記で出来ました。続いて設定の簡易的なチェックを行います。
⑤④付属のツールで設定値のチェック。
Apacheの場合は apachectl configtestというツールを使用します。
[root@web1 ~]# apachectl configtest
Syntax OK
取り敢えず上記メッセージが表示された場合、Apacheの構文は間違えていないハズです。
⑥サービスの起動。
Apacheの場合は以下のコマンドでサービスを起動します。
[root@web1 ~]# systemctl start httpd
以下のコマンドでhttpdサービスが起動している事を確認します。
[root@web1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor pr>
Active: active (running) since Thu 2022-06-09 23:48:30 JST; 7s ago
(略)
Active:active(running)と表示されていればサービスは正常に稼働しています。
これは次のコマンドでも確認出来ます。
[root@web1 ~]# systemctl is-active httpd
active
ですが、トラブルが発生した際はsystemctl status コマンドだとログが表示されるので、慣れればそちらを使った方が良いかも知れません。
サービスが正常に動作可能である事を確認後、起動時にhttpdサービスが自動的に起動する様に設定を行います。
[root@web1 ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
httpdサービスが自動起動行われているか確認します。結果がenabledであれば自動起動が行われます。
[root@web1 ~]# systemctl is-enabled httpd
enabled
これでサーバー起動時には自動的にhttpdサービスが起動する様になりました。
⑦ファイアウォール・SELinuxなどセキュリティの制限解除。
ファイアウォールの設定解除は以下のコマンドで行います。
[root@web1 ~]# firewall-cmd --add-service=http --permanent
success
なお、規定でhttpdがSELinuxで許可をされている項目は以下になります。
[root@web1 ~]# getsebool -a | grep httpd | grep 'on$'
httpd_builtin_scripting --> on
httpd_enable_cgi --> on
以下のコマンドでhttpd がホームディレクトリーを読み取ることを許可します。
[root@web1 ~]# setsebool -P httpd_enable_homedirs on
[root@web1 ~]# getsebool -a | grep httpd | grep 'on$'
httpd_builtin_scripting --> on
httpd_enable_cgi --> on
httpd_enable_homedirs --> on ←この行が追加される事を確認。
⑧サーバー側から動作確認。
続いては作成したWebページへアクセス可能か検証を行う為に、Webサーバーの仮想マシン上のGUIからWebブラウザ(Firefox)を立ち上げ、URLに以下のアドレスを入力します。
http://web1.stream.server
上記URLにアクセスし、「This is Web Server Test Page on web1.stream.server」と表示されれば成功です。
⑨クライアントマシンから動作確認。
クライアントマシンでも⑧と同じ方法でhttp://web1.stream.serverにアクセスします。
こちらも「This is Web Server Test Page on web1.stream.server」と表示されれば成功です。
以上、簡単にですが実際にWebサーバーを構築して動作確認を行ってみました。
今回の設定は最低限しか行っていない為、単純でしたが、基本的な手順はどの種類のサーバーでも大体共通しています。