LinuxでApache Webサーバーを管理するための便利なコマンド

このチュートリアルでは、開発者やシステム管理者として知っておくべき、最も一般的に使用されるApache(HTTPD)サービス管理コマンドのいくつかについて説明します。これらのコマンドを手元に置いておく必要があります。また、SystemdおよびSysVinitの両方のコマンドも示します。

関連記事: Linuxユーザーが知っておく必要がある10の最も使用されるNginxコマンド

以下のコマンドは、rootまたはsudoユーザーとして実行する必要があり、CentOSRHELFedoraDebianUbuntuなど、あらゆるLinuxディストリビューションで動作するはずです。

Apacheサーバーのインストール

Apacheウェブサーバーをインストールするには、デフォルトのディストリビューションパッケージマネージャーを使用します。

$ sudo apt install apache2	    [On Debian/Ubuntu]
$ sudo yum install httpd	    [On RHEL/CentOS]
$ sudo dnf install httpd	    [On Fedora 22+]
$ sudo zypper install apache2	    [On openSUSE]

Apacheバージョンの確認

Linuxシステム上のApacheウェブサーバーのインストール済みバージョンを確認するには、以下のコマンドを実行します。

$ sudo httpd -v
OR
$ sudo apache2 -v
サンプル出力
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09

Apacheのバージョン番号とコンパイル設定を表示したい場合は、次のように-Vフラグを使用します。

$ sudo httpd -V
OR
$ sudo apache2 -V
サンプル出力
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Apache構成の構文エラーを確認する

構文エラーをチェックするために、以下のコマンドを実行してApache構成ファイルをチェックします。これにより、サービスを再起動する前に構成ファイルの妥当性が確認されます。

$ sudo httpd -t
OR
$ sudo apache2ctl -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using tecmint.com. 
Set the 'ServerName' directive globally to suppress this message
Syntax OK

Apacheサービスを開始する

以下のコマンドを実行することで、Apacheサービスを開始します。

------------ On CentOS/RHEL ------------ 
$ sudo systemctl start httpd     [On Systemd]
$ sudo service httpd start 	 [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl start apache2   [On Systemd]
$ sudo service apache2 start     [On SysVInit]

Apacheサービスを有効化する

前のコマンドは、Apacheサービスを一時的に開始しますが、これをシステムの起動時に自動的に開始させるために、以下のコマンドを実行します。

------------ On CentOS/RHEL ------------ 
$ sudo systemctl enable httpd     [On Systemd]
$ sudo chkconfig httpd on 	  [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl enable apache2   [On Systemd]
$ sudo chkconfig apache2 on       [On SysVInit]

Apacheサービスを再起動する

Apacheサービスを再起動するには(停止した後、開始したサービスを)、以下のコマンドを実行します。

------------ On CentOS/RHEL ------------ 
$ sudo systemctl restart httpd     [On Systemd]
$ sudo service httpd restart 	   [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl restart apache2   [On Systemd]
$ sudo service apache2 restart     [On SysVInit]

Apacheサービスの状態を表示する

Apacheサービスの実行状態を確認するには、以下のコマンドを実行します。

------------ On CentOS/RHEL ------------ 
$ sudo systemctl status httpd     [On Systemd]
$ sudo service httpd status 	  [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl status apache2   [On Systemd]
$ sudo service apache2 status     [On SysVInit]

Apacheサービスを再読み込む

Apacheサーバーの設定を変更した場合、サービスに対して設定を再読み込むために、以下のコマンドを実行することができます。

------------ On CentOS/RHEL ------------ 
$ sudo systemctl reload httpd     [On Systemd]
$ sudo service httpd reload 	  [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl reload apache2   [On Systemd]
$ sudo service apache2 reload     [On SysVInit]

Apacheサービスを停止する

Apacheサービスを停止するには、以下のコマンドを使用します。Apache

------------ On CentOS/RHEL ------------ 
$ sudo systemctl stop httpd       [On Systemd]
$ sudo service httpd stop 	  [On SysVInit]

------------ On Ubunt/Debian  ------------
$ sudo systemctl stop apache2     [On Systemd]
$ sudo service apache2 stop     [On SysVInit]

Apacheコマンドの帮助を表示する

最後に、以下のコマンドを実行することで、Apacheサービスコマンドに関する

$ sudo httpd -h
OR
$ sudo apache2 -h		
OR
$ systemctl -h apache2	
Sample Output
Usage: httpd [-D name] [-d directory] [-f file]
             [-C "directive"] [-c "directive"]
             [-k start|restart|graceful|graceful-stop|stop]
             [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Options:
  -D name            : define a name for use in  directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed vhost settings
  -t -D DUMP_RUN_CFG : show parsed run settings
  -S                 : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
  -T                 : start without DocumentRoot(s) check
  -X                 : debug mode (only one worker, do not detach)

systemctlについてのより詳細な情報を探すために、以下のリンクを参照してください: Linuxで‘Systemd’サービスとユニットを‘Systemctl’を使用して管理する方法

以下のApache関連記事もおすすめです。

  1. Apache Webサーバーのパフォーマンスを向上させるための5つのヒント
  2. Apache Webサーバーの負荷とページ統計を監視する方法
  3. 「Apache GUI」ツールを使用してApache Webサーバーを管理する方法
  4. LinuxでApache HTTPポートを変更する方法
  5. 13のApache Webサーバーセキュリティとハードニングのヒント
  6. Mod_SecurityとMod_evasiveモジュールを使用してApacheをブルートフォース攻撃やDDoS攻撃から保護する方法

以上です!この記事では、Apache/HTTPDサービスの起動、有効化、再起動、停止など、よく使用される管理コマンドを説明しました。ご質問やコメントがある場合は、下記のフィードバックフォームからいつでもお問い合わせください。

Source:
https://www.tecmint.com/manage-apache-web-server-in-linux/