Apacheが正常に起動したか確認する方法

目次

スポンサードリンク

ApacheはオープンソースのWebサーバソフトウェアです。この記事ではApacheが正常に起動したか確認する方法を紹介します。

ブラウザでアクセスする方法

最もシンプルな方法です。ブラウザでサーバーのIPアドレスやドメインにアクセスしページが正常に表示できるか確認してみましょう。

ファイアウォールでWebサーバーへのアクセスが制限されている場合や、仮想ホストの設定が間違っている場合は、Apacheプロセス自体が正常に起動していても、ブラウザでアクセスすると正しく表示されないことがある点は注意しましょう。

コマンドで起動状態を確認する方法

ブラウザで表示するだけでなく、より詳細な情報を確認したい場合は、コマンドでApacheプロセスの状態を確認する方法があります。OSの系統により異なりますが、大部分の環境では下記コマンドで状態を確認することができます。

RHELの場合

RHELやCentOSの場合は、service httpd status コマンドで状態を確認することができます。起動状態(Activeかどうか)や起動からの経過時間、プロセスID(PID)などを確認することができます。apachectl status コマンドでも同様の結果を得ることができます。

[root@hostname conf]# service httpd status
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-02-08 18:14:18 JST; 2 years 5 months ago
    Docs: man:httpd(8)
        man:apachectl(8)
Process: 24137 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Main PID: 18285 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
CGroup: /system.slice/httpd.service
        ├─12055 /usr/sbin/httpd -DFOREGROUND
        ├─12953 /usr/sbin/httpd -DFOREGROUND
        ├─18285 /usr/sbin/httpd -DFOREGROUND
        ├─24147 /usr/sbin/httpd -DFOREGROUND
        ├─31594 /usr/sbin/httpd -DFOREGROUND
        ├─31600 /usr/sbin/httpd -DFOREGROUND
        ├─31605 /usr/sbin/httpd -DFOREGROUND
        ├─31609 /usr/sbin/httpd -DFOREGROUND
        ├─31613 /usr/sbin/httpd -DFOREGROUND
        ├─31630 /usr/sbin/httpd -DFOREGROUND
        └─31633 /usr/sbin/httpd -DFOREGROUND

Debian/Ubuntuの場合

DebianやUbuntuの場合は、systemctl status apache2 コマンドで状態を確認することができます。RHELと同様、起動状態や起動からの経過時間、プロセスIDなどを確認することができます。

root@hostnema:~$ systemctl status apache2
● apache2.service - The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2024-07-19 06:28:43 JST; 2 weeks 5 days ago
    Docs: https://httpd.apache.org/docs/2.4/
    Process: 3493066 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Main PID: 2718594 (apache2)
    Tasks: 55 (limit: 2260)
    Memory: 49.8M
    CGroup: /system.slice/apache2.service
            ├─2718594 /usr/sbin/apache2 -k start
            ├─3493071 /usr/sbin/apache2 -k start
            └─3493072 /usr/sbin/apache2 -k start

プロセス一覧を確認する方法

ps コマンドを使うと、Apacheが正常に起動しているか確認することができます。正常に起動している場合は、以下のようにApacheプロセスを確認することができます。

ps aux コマンドで全てのプロセスを表示し、grepコマンドで httpd を含む行のみに表示を絞り込んでいます。下記はRHELで試しましたが、DebianやUbuntuで実行する場合は、apache などで絞り込んでください。

下記を見ると、root で実行している 親プロセスと、apacheユーザーで実行している子プロセスが複数いることが確認できます。

[root@hostname conf]# ps aux | grep httpd
root      5301  0.0  0.0 112708   980 pts/0    S+   12:02   0:00 grep --color=auto httpd
apache   12055  0.0  0.6 255156  6888 ?        S    Aug04   0:00 /usr/sbin/httpd -DFOREGROUND
apache   12953  0.0  0.6 255224  6892 ?        S    Aug04   0:01 /usr/sbin/httpd -DFOREGROUND
root     18285  0.0  0.8 254796  7984 ?        Ss    2022  56:05 /usr/sbin/httpd -DFOREGROUND
apache   24147  0.0  0.6 255156  6884 ?        S    Aug04   0:01 /usr/sbin/httpd -DFOREGROUND
apache   31594  0.0  0.6 255220  6856 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31600  0.0  0.6 255180  6836 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31605  0.0  0.6 255240  6796 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31609  0.0  0.6 255220  6804 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31613  0.0  0.6 255220  6852 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31630  0.0  0.6 255220  6848 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND
apache   31633  0.0  0.6 255220  6868 ?        S    Aug06   0:00 /usr/sbin/httpd -DFOREGROUND    

何らかの理由で Apacheが起動に失敗した場合、プロセス自体が存在しないのですぐに異常があると気づくことができます。Apacheを起動した後はすぐにこのコマンドでプロセスの状態を確認する癖をつけるとよいでしょう。

エラーログを確認する方法

Apacheプロセスが存在しないなど、何らかの理由でApacheが起動しなかった場合は、エラーログを確認しましょう。エラーログには、起動に失敗した原因や、リクエスト処理中に発生したエラーなどが記録されています。エラーメッセージを参考に、問題を特定することができます。

ログの出力場所は下記で解説しています。アクセスログについての記事ですが、エラーログもアクセスログと同じ場所に出力されています。エラーログは通常、アクセスログと同じディレクトリに error_log という名前で保存されています。詳細な場所は、httpd.confの設定で変更可能です。

Apacheのアクセスログの出力場所と見方を解説


Linuxの基礎からセキュリティまで、サーバー運用に必要な知識をまとめた書籍

Webシステムの基礎について徹底的に学べるUdemy講座
【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎 icon