Webサーバーを動かす
【連載コラム:Linuxを学ぼう(20)】
サーバーを扱う上で必須と言える技術が「Linux」。今回は前回インストールしたWEBサーバーについて、それを動作させる方法を紹介します。
今回は、インストールしたWebサーバーを動作させます。また、プロセスやTCPポート、ログなどで基本的な動作確認も併せて行ってみます。
Webサーバーを起動する
Webサーバーを起動するには、systemctl startコマンドを実行します。サービス名(ユニット名)はパッケージ同様、httpdを指定します。
# systemctl start httpd
問題なく起動すると、特に何も表示されません。
動作を確認する
きちんと動いているか、curlコマンドでWebサーバーにアクセスして確認してみましょう。
# curl localhost
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test Page for the HTTP Server on AlmaLinux</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
(中略)
</body>
</html>
テストページのHTMLが表示されれば、Webサーバーを正常に起動し、動作しています。
状態を確認する
Webサーバーの動作状態を確認するには、systemctl statusコマンドを実行します。
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
Active: active (running) since Thu 2023-08-24 14:17:33 JST; 1min 14s ago
Docs: man:httpd.service(8)
Main PID: 27122 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec"
Tasks: 213 (limit: 10670)
Memory: 26.6M
CPU: 203ms
CGroup: /system.slice/httpd.service
├─27122 /usr/sbin/httpd -DFOREGROUND
├─27123 /usr/sbin/httpd -DFOREGROUND
├─27124 /usr/sbin/httpd -DFOREGROUND
├─27125 /usr/sbin/httpd -DFOREGROUND
└─27126 /usr/sbin/httpd -DFOREGROUND
Aug 24 14:17:33 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Aug 24 14:17:33 localhost.localdomain httpd[27122]: AH00558: httpd: Could not reliably determine the server's fully>
Aug 24 14:17:33 localhost.localdomain httpd[27122]: Server configured, listening on: port 80
Aug 24 14:17:33 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
サービス(ユニット)の状態やプロセス、ログの一部などが表示されています。
プロセスを確認する
プロセスの状態は、psコマンドでも確認できます。fオプションを追加すると、プロセスの親子関係を分かりやすく表示してくれるので覚えておきましょう。
# ps afux | grep httpd
root 27433 0.0 0.0 3580 1540 pts/0 S+ 14:18 0:00 \_ grep --color=auto httpd
root 27122 0.0 0.5 29260 10164 ? Ss 14:17 0:00 /usr/sbin/httpd -DFOREGROUND
apache 27123 0.0 0.4 30968 8560 ? S 14:17 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 27124 0.0 0.6 1551396 12032 ? Sl 14:17 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 27125 0.0 0.8 1683492 14080 ? Sl 14:17 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 27126 0.0 0.9 1551396 16112 ? Sl 14:17 0:00 \_ /usr/sbin/httpd -DFOREGROUND
TCPのポートを確認する
起動したWebサーバーが使用している(LISTENしている)TCPのポートを確認しましょう。lsofコマンドを使うと簡単に確認できます。インストールされていない場合には、dnfコマンドでインストールします。
# dnf install lsof
lsofコマンドに-iオプションを付けて実行すると、ポートの一覧が表示されます。httpdプロセスが使用しているポートのみ表示してみます。
# lsof -i | grep httpd
httpd 27122 root 4u IPv6 56680 0t0 TCP *:http (LISTEN)
httpd 27124 apache 4u IPv6 56680 0t0 TCP *:http (LISTEN)
httpd 27125 apache 4u IPv6 56680 0t0 TCP *:http (LISTEN)
httpd 27126 apache 4u IPv6 56680 0t0 TCP *:http (LISTEN)
httpポート、すなわち80番ポートをLISTENしているのが分かります。
ログを確認する
ログはjournalctlコマンドで確認できます。オプション無しで実行するとすべてのログが表示されるので、ユニット名を--unitオプションで指定して絞り込みます。
# journalctl --unit=httpd
Aug 24 14:17:33 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Aug 24 14:17:33 localhost.localdomain httpd[27122]: AH00558: httpd: Could not reliably determine the server's fully>
Aug 24 14:17:33 localhost.localdomain httpd[27122]: Server configured, listening on: port 80
Aug 24 14:17:33 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
正常に起動しているログが記録されています。起動に失敗するような場合にはログで何が原因かを確認しましょう。
Webサーバーを題材に、基本的なサーバーサービスの管理の方法を確認してみました。その他のサーバーサービスにおいても共通の方法ですので、しっかりと覚えておきましょう。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第21回:外部からWebサーバーにアクセスする
第20回:Webサーバーを動かす
第19回:Webサーバーをインストールする
第17回:ネットワークの状態確認を理解する
第15回:ファイルのアクセス権を理解する
第14回:パッケージをアップデートする dnf編
第13回:PAMを理解する
第12回:グループとは何かを理解する
第11回:sudoコマンドについて理解する
第10回:suコマンドで特権ユーザーになる
第9回:ユーザー権限を理解する
第8回:SSHによるリモートログイン
第6回:Linuxイストールの実際
第5回:Linuxインストールの準備
第3回:学習環境を用意する
第2回:Linuxをどう学ぶのか
第1回:Linuxを学ぼう