
第2回 もっとApacheを知ろう
竹下 肯己
株式会社 qnote
2009/11/30
開発者として常にプログラマに徹してしまっていないだろうか。そうすると、どうしてもサーバ知識が不足しがちになる(編集部)
自動起動の設定
- - PR -
第1回「Webサーバから始めよう」で手順を追って設置した/etc/rc.d/init.d/httpdというApacheの制御スクリプトは、システム起動時におけるApacheの自動起動に利用できます。
今回は、Linuxのシステム起動時に各種のサーバプログラムを自動的に起動させる方法を、Apacheを例に紹介しておきましょう。
まず、/etc/rc.d/init.d/配下に、サーバ制御スクリプトを設置します。制御スクリプトの内容はサーバプログラムにより異なりますが、多くのパッケージではインストール時に自動で設置されるか、またはサンプルが提供されます。今回の例では、すでに紹介した手順で/etc/rc.d/init.d/httpdを設置済みです。
次に、/etc/rc.d/rc[0-6].d/ というディレクトリ([0-6]の部分にはシステムのランレベルを表す数字が入ります)に、一定の命名規則に従って、先ほどのサーバ制御スクリプトへのシンボリックリンクを作成します。このシンボリックリンクも、RPMでのインストールでは自動で設置される場合があります。
Apacheを例に、RPMでインストールした直後の状態で確認してみると、以下のようにシンボリックリンクが作成されていることが確認できます。
# find /etc/rc.d/rc*.d -name "*httpd*" -ls 2491130 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc0.d/K15httpd -> ../init.d/httpd 2491131 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc1.d/K15httpd -> ../init.d/httpd 2491132 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc2.d/K15httpd -> ../init.d/httpd 2491133 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc3.d/K15httpd -> ../init.d/httpd 2491134 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc4.d/K15httpd -> ../init.d/httpd 2491135 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc5.d/K15httpd -> ../init.d/httpd 2491136 0 lrwxrwxrwx 1 root root 15 7月 29 16:05 /etc/rc.d/rc6.d/K15httpd -> ../init.d/httpd
Kで始まるシンボリックリンクは、リンク先の制御スクリプトを通して、サーバプログラムを停止させるためのものです。上記の例では、すべてのランレベルでApacheが自動起動しない設定になっていることが分かります。
Apacheをソースからインストールした場合には、そもそも/etc/rc.d/init.d/httpdが自動では設置されませんので、当然シンボリックリンクも存在しません。
サーバプログラムを自動起動させたいときは、起動に対応するランレベル(ランレベル3や5)のディレクトリにSから始まるシンボリックリンクを作成します。また、そのディレクトリのKで始まるシンボリックリンクは削除します。
なお、KやSに続く数字は、スクリプトが実行される順序です。別のサービスに依存するサーバプログラムもありますので、起動や終了の順序を指定できるようになっています。
シンボリックリンクはlnコマンドで手動で作成してもよいのですが、chkconfigというコマンドを利用すると便利です。chkconfigは、各ランレベルでのサービスの有効・無効を一元管理できるツールです。
ApacheをRPMからインストールした場合には、chkconfigの管理対象として/etc/rc.d/init.d/httpdがすでに含まれていますので、以下のコマンドで起動設定を確認できます。
# chkconfig --list | grep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
先ほどシンボリックリンクの検索で確認できたとおり、すべてのランレベルでApacheが起動しないようになっていることが分かります。
Apacheをソースからインストールした場合には、前回の手順で設置した/etc/rc.d/init.d/httpdをchkconfigに認識させる必要があります。/etc/rc.d/init.d/httpdを開いて、先頭のコメントブロックの最後あたりに、以下の2行のコメントを記述してください。
#chkconfig: - 85 15 #description:Apache
85は起動時のスクリプト実行順序、15は終了時のスクリプト実行順序です(ここではRPMの場合のデフォルト値を流用しました)。記述したら、chkconfigに制御スクリプトを認識させます。以下のコマンドを実行してください。
chkconfig --add httpd
これで、RPMでインストールした場合と同じく、chkconfigからApacheの起動設定が可能になりました。試しに先ほどの「chkconfig --list | grep httpd」を実行してみてください。RPMの場合と同じ表示が得られ、Apacheがchkconfigの管理対象として認識されたことが確認できます。
ここまでのお膳立てができたら、最後に、特定のランレベルでのシステム起動時にApacheが自動的に起動するようにchkconfigで設定します。ランレベル3(テキストモードでの起動)およびランレベル5(GUIモードでの起動)のときに、Apacheが起動するようにしてみましょう。以下のようにコマンドを実行します。
chkconfig --level 35 httpd on
あらためて起動設定を確認してみます。
# find /etc/rc.d/rc*.d -name "*httpd*" -ls 3572341 0 lrwxrwxrwx 1 root root 15 7月 29 17:48 /etc/rc.d/rc0.d/K15httpd -> ../init.d/httpd 3572455 0 lrwxrwxrwx 1 root root 15 7月 29 17:48 /etc/rc.d/rc1.d/K15httpd -> ../init.d/httpd 3572459 0 lrwxrwxrwx 1 root root 15 7月 29 17:48 /etc/rc.d/rc2.d/K15httpd -> ../init.d/httpd 3572460 0 lrwxrwxrwx 1 root root 15 7月 29 18:40 /etc/rc.d/rc3.d/S85httpd -> ../init.d/httpd 3572461 0 lrwxrwxrwx 1 root root 15 7月 29 17:48 /etc/rc.d/rc4.d/K15httpd -> ../init.d/httpd 3572462 0 lrwxrwxrwx 1 root root 15 7月 29 18:40 /etc/rc.d/rc5.d/S85httpd -> ../init.d/httpd 3572463 0 lrwxrwxrwx 1 root root 15 7月 29 17:48 /etc/rc.d/rc6.d/K15httpd -> ../init.d/httpd
# chkconfig --list | grep httpd httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
以上でシステムの起動時にApacheが自動的に起動されるようになりました。ここで紹介した設定方法は、多くのサーバプログラムで共通となりますので、仕組みや設定手順を理解しておきましょう。
1/3 |
| Index | |
| もっとApacheを知ろう | |
| Page1 自動起動の設定 |
|
| Page2 Apache設定の基本項目 ログ出力の設定 エラーログ |
|
| Page3 アクセスログ アクセスに応じて環境変数を設定する アクセスログを目的別に分けて出力したい |
|
| いまさら聞けない!? Web系開発者のためのサーバ知識 |
| Mac OS X関連記事 |
| プログラマーを引き付けるMac OS Xの魅力 続々移行するそのワケとは Mac一筋という熱狂的なユーザーだけでなく、「面白いことをしたい」と考えるエンジニアもMac OS Xを利用し始めている。いったいなぜだろう |
|
| Mac OS XでAMP構築 3通りの方法で整備できる開発環境 Mac OS Xの上にWebアプリケーションの定番、AMP(Apache+MySQL+PHP)環境を3通りの方法で導入してみましょう |
|
| Mac OS Xで動かす軽量プログラミング言語 導入からPHP拡張モジュール組み込みまで Leopardでは、インストール直後からいくつかの軽量プログラミング言語が利用できます。早速試してみませんか? |
|
| Objective-Cは特殊な言語? Cocoaの素、Objective-Cを知ろう(1) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう |
|
| Mac内にPHP4、5、6を同居させるコツ Mac OS X+PHPでオールインワン環境(インストール編) PHP4の開発は終了したが、移行の問題は残されている。異なるバージョンのPHPをスムーズに切り替えるには? |
|
- [ニッチ]E4Xで攻撃できる? できない? (2010/2/8)
ECMAScriptでXMLを扱う「E4X」。ニッチかもしれませんが、攻撃の可能性があることだけは知っておきましょう - GAE上でLL+RDBアプリを作ろう (2010/2/3)
開発者にとって魅力的な環境に映るGoogle App Engine。これまでの開発手法を変えずに使えないだろうか - 豆まきユースケースの包含 (2010/2/1)
デバッグが上手くいかず、気分転換にもらった豆をポリポリ。節分のユースケースを考え始めます - Apacheで仮想ホストを動かそう (2010/1/29)
1台のApacheサーバで、複数の公開サイトを提供するには? 仮想ホストの設定の意味を知ろう
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






