読者です 読者をやめる 読者になる 読者になる

女子WEBエンジニアのTechメモ

都内の某企業でマーケッターやってます。営業→WEBエンジニア・オフショア開発チーム駐在→マーケッター(SEO)ちょっと便利だなと思ったことをメモしています。

apachectlコマンドとhttpdの違い

インフラ

下記の記事を書いたときに、apacheの制御をするコマンドがたくさんあったので違いを調べて見ました。
www.wegirls.tech

前提としている環境

  • apache 2.2 / 2.4
  • CentOS6.x系(Linux OS であればほぼ同じ?)

今回調べたコマンド

今回調べたのは、apachectl と httpdの違い。

例えば、apacheの起動には、下記の4つのコマンドを使うことが出来る。

$ service httpd start
/etc/init.d/httpd start
apachectl start
/usr/local/apache/bin/apachectl start

service httpd ~ と /etc/init.d/httpdの違い

service httpd ~は、serviceコマンドをつかって、/etc/init.d/httpdを実行しているというものです。
つまり、service httpd ~/etc/init.d/httpdはほぼ同じものを指しています。

serviceコマンドとは

seviceコマンドは、指定したLinuxデーモンの起動や停止、ステータスの確認を行うシェル・スクリプトを実行します。
/sbin/serviceの中に、実行しているシェル・スクリプトの中身を確認できます。

ちなみに、serviceコマンドは、/etc/init.d/etc/rc.d/init.d)にあるスクリプトを実行しているだけなので、/etc/init.d以下のスクリプトを直接実行しても、sevriceコマンドと同じ結果が得られます。
「つまり、service httpd ~/etc/init.d/httpdはほぼ同じ」というのは、こういうわけです。

ステータス確認や、パスの確認をしなくていい分、serviceコマンドの方が便利かと思います。

httpd と apachectlの違い

httpdapachectlも、apacheを操作するコマンドです。正式なのはapachectlのほうです。

なぜ複数の種類があるかというと、Linuxのコマンドはそもそも複数の開発者によって自由に作られているため、停止や開始の方法が様々だからです。

このバラバラの状態だと使いにくいため、同じ書式で制御できるように考えられたのが「sysv方式」の起動停止スクリプトです。
例:/etc/init.d/httpdとか

ちなみに、下記のようにOSによって連動しているスクリプトがあります。
使うOSとあうものを選ぶと、連動できて便利。・・・というか、連動できない書式をわざわざ使う意味はないですよね。゚(゚^ω^゚)゚。(そもそも使えない?)

  • /etc/init.d/httpdDebian用の起動停止スクリプト
  • /etc/rc.d/init.d/httpdRedHat用の起動停止スクリプト

Apacheハンドブック

Apacheハンドブック

できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ

できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ

  • 作者: 辻秀典,渡辺高志,鈴木幸敏,できるシリーズ編集部
  • 出版社/メーカー: インプレス
  • 発売日: 2013/02/17
  • メディア: Kindle版
  • この商品を含むブログを見る
Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集

Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集