Apacheコマンドのまとめ

Apacheでサービスの操作を行う方法はいくつもあります。

UbuntuでのApacheの操作についてまとめました。

Apacheの操作コマンド

UbuntuでのApacheの操作はapachectlもしくはapache2ctlです。

どちらも使える場合は同じ結果になります。

apachectl

OSのバージョンによってはserviceコマンドを使えます。

service apache2 start   # 起動
service apache2 stop    # 停止
service apache2 restart # 再起動

新しいバージョンであればsystemctlの場合もあります。

サービス名とオプションがserviceコマンドと逆になっているので注意が必要です。

systemctl start apache2
systemctl stop apache2
systemctl restart apache2

いずれにしてもコマンドが実行できるユーザーである必要があります。

ユーザーにsudo権限を与えれば、コマンドの頭にsudoを付けることで実行可能になります。

またserviceやsystemctlはOS共通のサービスを操作するコマンドなので、各アプリケーションの便利なオプションは利用できません。

できればapachectlコマンドを利用する方がいいでしょう。

apachectlの基本コマンド

それではapachectlコマンドを見ていきます。

Apacheの起動

apachectl start

Apacheの停止

apachectl stop

Apacheの再起動

apachectl restart

Apacheの再起動(graceful)

apachectl graceful

見かけ上はrestartコマンドと違いはありませんが、接続しているユーザーを切断せずに再起動を行うことができます。

しかし、回線の遅いユーザーの接続が残っている場合は、ログに書き込みが遅れることがあります。

文法チェック

設定ファイルを書き換えたあと、再起動をする前に文法のチェックをしましょう。

設定が間違っていた場合、再起動で停止したあとに起動しなくなります。

apachectl configtest

apachectlで設定の確認

バーチャルホストと実行ファイルの確認

次のオプションでApacheのバーチャルホストと実行に関わるファイルの設定を確認できます。

apachectl -S
VirtualHost configuration:
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

ロードしているモジュールの確認

configtestでエラーが出る場合、もしかしたら必要なモジュールがロードできていないかもしれません。

そんな時の確認に重宝します。

apachectl -M
Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 mime_module (shared)
 mpm_event_module (shared)
 negotiation_module (shared)
 setenvif_module (shared)
 status_module (shared)

コマンドのヘルプを見よう

いくつかのオプションを見てきましたが、-hでヘルプを見ると、忘れた時でも対応できます。

apachectl -h
Usage: /usr/sbin/apache2 [-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 <IfDefine name> 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)

configtestの説明は-hでは見れません。

目当ての説明が見つからない時はmanコマンドを併用すると、解決できるかもしれません。

man apachectl

まとめ

Linuxの理解を深めるにはヘルプを見たり、公式サイトを読んだりすることが必須です。

ただ学習のとっかかりとして、Apacheでどのようなコマンドが使えるのか、という説明はブログにしていければと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です