Webサーバーを動かす

【連載コラム:Linuxを学ぼう(20)】
サーバーを扱う上で必須と言える技術が「Linux」。今回は前回インストールしたWEBサーバーについて、それを動作させる方法を紹介します。

最終更新日:2023年10月05日

今回は、インストールした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サーバーをインストールする

第18回:典型的なネットワークトラブルについて理解する

第17回:ネットワークの状態確認を理解する

第16回:アクセス権に関わる様々なことについて理解を深める

第15回:ファイルのアクセス権を理解する

第14回:パッケージをアップデートする dnf編

第13回:PAMを理解する

第12回:グループとは何かを理解する

第11回:sudoコマンドについて理解する

第10回:suコマンドで特権ユーザーになる

第9回:ユーザー権限を理解する

第8回:SSHによるリモートログイン

第7回:Linuxインストール後にやること

第6回:Linuxイストールの実際

第5回:Linuxインストールの準備

第4回:Linux学習のためのネットワーク環境

第3回:学習環境を用意する

第2回:Linuxをどう学ぶのか

第1回:Linuxを学ぼう

ページトップへ