
第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をスムーズに切り替えるには? |
|
- PHPでGAE上に社員検索アプリを作る (2010/3/18)
GAEの制約により使うことができなかったテンプレートエンジン。PHP4GではSmartyが使えるようになった - 構造体の便利な用途、インターフェイス入門 (2010/3/10)
継承機能を排除したインターフェイス機能でダックタイピングが可能となった。サンプルで確かめてみよう - プライベートモードの履歴状態 (2010/3/1)
仕事に集中できるときと、なかなかできないとき、ありますよね。状態遷移図で考えてみよう - Goのswitch文で解くFizzBuzzと構造体のイントロ (2010/2/25)
Goではif文と同等の制御構造をswitch文で表現できる。試してみよう
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |






