アタマのひきだし

webプログラミング情報メモ

サーバ環境の構築…つづき

前回書いた「サーバ環境の構築」 の続きを書いていきます。 サーバ環境を構築していく上で、必須の要素はなんでしょうか。ビギナー目線で整理。

そもそも、「サーバって何をしている?」のでしょうか。wikiでぐぐってみます。「要求に応じ、何らかのサービスを提供するもの、ソフトウェア…。 提供するサービスはサーバの種類によって異なる…」などとあり、なんらかのサービスを提供してくれるもののようです。「サーバにはいろいろなサービスが寄り集まっている」ようです。 自分のディストリビューションDebian なので、基本的にはDebian に置き換えて表記しています。

サーバ構築するとは、サーバ用プログラムを起動すること

「はじめてのFedora Core 5 Linuxサーバ構築編 (TECHNICAL MASTER) 」

本に書いてあったことを抜粋して、いろいろ考えてみます。サーバ環境には、いろいろなサービスが存在し、あとから追加もされ、全てのサービスを管理するのは大変。なので、自動で動いてくれるようなしくみが必要になってくるのかなと…。サービスとは、たとえば、sshMySQL のことだと思います。

そのしくみがデーモンと呼ばれるもので「サーバ用のプログラム」「サーバデーモン」と、本の中では書いてあるのかな。と思いました。自動で動き、一度起動させたら、サーバとの接続を切っても、ログアウトしても実行され続けています。クライアントからのアクセスを待ち続け、アクセスがあると必要な処理を始めます。

デーモンはだいたい、/etcディレクトリにあると思います。そして、デーモンのファイルにはだいたい、dがつくみたいです。「◯◯◯.d」だったり「◯◯◯d」だったりと。ですが、sshの場合、dがついていないようなので注意。

↓ /etcディレクトリ内を表示

http://i.gyazo.com/f389d0294218c155913f1345834c242d.png

sshなどプログラムをインストールすると、ファイルやディレクトリは、適材適所のディレクトリへ保存されています。sshの場合だと、/etcディレクトリ、/usr/sbinディレクトリなどなど…。 /usr/share/doc ディレクトリには、ドキュメントファイル、README などがあるようです。

init.d のディレクトリにあるもの

「サービス制御スクリプト」「rcスクリプト」「起動スクリプト」などというようです。しかし、収められているのは、単なるシェルスクリプトです。このファイルには、各種サーバの起動/停止などを行うのに、必要なコマンドが記述されています。

ランレベルに対応し、書式としては、/etc/rc0.dです。/etc/init.d内のrcスクリプトへのシンボリックリンクが作られています。 ためしに、/etc/rc2.dディレクトリをみてみます。ランレベル2で起動するサービスがいろいろあります。Sは start を意味し、Kだと stop です。その次の2桁の番号は順番でその次がサービス名。ランレベル2では、sshは17番目にスタート。

http://i.gyazo.com/9a6d734372901bcb64e6798d4aad5c30.png

ランレベルというのは、システムの状態を表していて、0〜6の範囲の値をとります。この番号で、状態を表しています。 0と6に設定してしまうと、コンソールを起動できなくなるようなので注意が必要です。Debian のディレクトリ内のどこかに、ランレベルを説明した、ファイルがあり、それをみて書いたはずですが。ちょっと場所は覚えていません。。

引数 説明
0 停止
1 シングルユーザーモード
2-5 マルチユーザーモード
6 再起動

各サービスのコントロール

以下にあげるような引数を使用し、各サービスをコントロールすることができます。

引数 説明
start サービスを起動。起動時に設定ファイルを読み込む。
stop サービスを停止する
restart stopとstartを順におこなう
reload 設定ファイルを読み込みなおす
status サービスの状態確認をおこなう

そして、設定できる引数は、各サービスによって異なってきます。なのでどんな引数が設定できるのか確認するのがいいかとおもいます。引数を確認する方法は引数なしでタイプします。$ /etc/init.d/ssh

http://i.gyazo.com/be9be8f5d01a19018b1b1cca0c1ee7f1.png

たとえば、リモートログインサービスである、sshd の状態を確認するには、以下のコマンドを実行 $ /etc/init.d/ssh status

↓下記のように、状態がわかります。

http://i.gyazo.com/12f55e063771121bb2f2c375676b1f52.png

各サービスはどのランレベル自動起動

$ sudo chkconfig --list | less で、システムを起動させたとき、自動起動するサービス一覧がみられます。Debianの場合、$ chkconfig最初から入っていなかったので、インストールしないと、コマンド打てません。そして以下の設定は、自動起動での「on」「off」設定です。動作しているサービスを停止するには「stop」入力することになります。

プラクティスでちょうどMySQLをインストールしたところでした。ランレベル2〜5で自動起動になっています。ssh も同じです。

http://i.gyazo.com/3dee24495ddd59054314f4cd602926a2.png