の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その2
|
|
2010年6月16日(水)開始 |
2010年6月20日(日)更新 |
最初にシステムのごく基本的な設定と、コンピュータを使いやすくするためのいくつか設定を行います。 |
|
|
起動の設定
PCの電源を入れるとブートメニューが表示され、やがてCentOSが起動されますが、この設定を少し変えます。 設定ファイルは /boot/grub/grub.conf 1.カーネルの全表示 CentOSのディフォルト設定ではブート時のカーネルは最新のものだけが表示されます。 何かキーを押せば全部表示されますが、いちいち面倒なので最初から全部表示されるようにしておきます。 hiddenmenuを #hiddenmenu 2.表示時間の変更 timeout=5 を 10 にして、少し長い時間表示されるようにしておきます。 …後日180に変更。不在時に停電して復帰した場合、先にルーター等が再起動、復帰していないと一部のサービスの起動に問題が出ることがわかったため。 3.ブートプロセスの表示 昔はブートの状況をずらずらと表示する場合が多かったのですが最近はなぜか隠されることが多くなりました。 しかしこの状況の確認は非常に重要で、幾度か助けられたことがあります。起動がうまくいけば[ OK ]、失敗すると[FAILED]とかが表示されるので、何か問題があったときにすぐ気がつくからです。すべての情報を表示するよう kernel . . . . rhgb quiet の rhgb quiet を取り除きます。 あとは保存して再起動、確認。
|
設定のバックアップ
無事起動したところで、ディフォルトの設定をそっくりバックアップしておきます。 /home に backups というフォルダをつくり、/etc をそこにフォルダごとそっくりコピー。 名前を etc-20100616 とでもしておきます。 設定をミスってわけがわからなくなったときにそっくり元に戻せるように。(実はよくある。)
|
不要なサービスの起動停止
ハードウエアのない、あるいは使わないサービスなどの起動を停止しておきます。 メニューのシステム ⇒ 管理 ⇒ サーバー設定 ⇒「サービス」でメニューの「ランレベルの編集」で「すべてのランレベル」を選んでおいてチェックをはずして保存。 これだとランレベル1、2が残りますが使わないランレベルなので気にしなくてもよさそうです。 あるいは完璧にやりたければ、 #chkconfig --list でリストしておいて #chkconfig <サービス名> off インストール時に選択したパッケージによって登録されているサービスは変わります。 以下はたまたま入っていたサービスの中で不要なものということで。 | 停止サービス | | 概要メモ |
---|
| NetworkManager | : | 複数のネットワークインターフェースを使用する場合、必要に応じて(動的に?)有線/無線のネットワーク接続をする。ネットワークは固定で運用するので不要。 | | acpid | : | 電源管理サービス。サスペンド、ハイバーネーションなどの休止状態のサポートを行う。常時稼動のサーバーでは不要 | | ampd | : | バッテリーの監視、制御を行う。バッテリーはないので不要。 | | autofs | : | CD,フロッピー,NFSなどを自動でマウントやアンマウントしてくれる。手動でやればいいのでいらない。 | | avahi-daemon | : | ローカルのネットワーク機器(プリンタなど)を検知、通知するサービス。なくてもいい。 | | bluetooth | : | 無線で機器をつなぐbluetoothを有効にする。使わないので不要。 | | cups | : | 標準のプリントサービス。プリンターをつながないので不要。 | | firstboot | : | OSの初回起動時の設定をするサービス。いったん起動したら不要。 | | hidd | : | bluetoothでキーボード、マウスなどを接続。使わないので不要。 | | hplip | : | HP社のプリンター、スキャナを動作させるドライバー。機器がないので不要。 | | ip6tables | : | ipv6用のファイアウォール。ipv6はプロバイダーの接続が対応していないため使えない。 | | lvm2-monitor | : | LVM(論理ボリューム)使用時の監視サービス。LVMは使用しないので不要。 | | mdmonitor | : | ソフトウェアRAIDのモニター。ソフトウェアRAIDは使用していないので不要。 | | mdmpd | : | ソフトウェアRAIDの監視。ソフトウェアRAIDは使用していないので不要。 | | pcscd | : | Smart Card関連のサービス。ハードがないので不要。 | | rawdevices | : | カーネルのI/Oバッファを使わず直接読み書きするデバイスを設定したとき必要。使わないので不要。 | | xinetd | : | クライアントからの要求に応じてサーバーサービス(httpやftpなど)を起動するサービス。いまのところ使わない。 | | yum-updatesd | : | アップデートを自動的に監視、通知、時に実行するサービス。アップデートは休みの日に手動で行うことにするので不要。(自動アップデートなんてこわくてできない!) | | など。 | | |
|
その他まだ設定していないサーバー関係のサービスが動いていたら、一時的に停止しておきます。sendmailを除いてhttpd, named, smbなど。 sendmailを生かしておくのはシステム通知を有効にするため、および通知メールがたまるのを防ぐためです。
|
ファイアウォールの設定
インストールの時にファイアウォールを使う設定にし、ホストするサーバー機能にチェックを入れておきました。 メニューの「管理」⇒「セキュリティーレベルとファイヤーウォールの設定」でtelnet以外すべてにチェックを入っているのを確認しておきます。以後、ファイアウォールのテーブル(iptables)は手動で編集するためもうこのソフトは使いませんので、メニューのリストから外しておきます。(うっかり使うと上書きされて設定がパーになる。) 単にベースになる設定ファイルがほしかっただけでした。
|
SSHDの設定
何かあったときにサーバー本体の外からも制御できるようにSSHサーバーを設定しておきます。
/etc/ssh/sshd_config (ssh_configではない) 変更したところ。 ListenAddress 0.0.0.0 …IPV4のみ有効に。何も指定しないとIPV6も有効になる。 AllowUsers donbei …ログインユーザは最小限に。 MaxAuthTries 3 …ログイントライ回数を3回に制限。
SSHDはサーバー起動時に立ち上がるようになっています。 設定を変更したらSSHDを再起動。 # service sshd restart
|
メールの設定(仮)
Linuxの場合システムからの各種通知はメールでrootあてに送られます。 よくわからない内容のメールが多いのですが、念のため読めるようにします。 Kmailを使います。 rootでKmailを立ち上げるとまだアカウントがない場合初期設定画面が出ますので、必要情報を入力。 アカウント名:root メールアドレス:root@(ドメイン名、設定してなければlocalhost) ファイルの場所:/root/Maildir 等。 あとで設定メニューから変更できます。
Kmailを起動してみるとlogwatchからのメールが毎日きています。 いちおうざっと目を通すけど英語なのでほとんどわからない...
|
パッケージマネジャー変更(追加)
メニューの「アプリケーションの追加/削除」から 一覧 ⇒「yumex」を追加インストール! これが実に使いやすい。なんでこれをディフォルトにしないんだろう。 起動はメニュー⇒ システムツール⇒「Yum Extender」 すぐ起動できるようパネルにも追加しておきます。
|
時刻同期サーバーNTPの設定
インストール時に時刻を自動的に同期するように指定したところ、NTPサーバーが自動的に動いており何らする必要はありませんでした。 ただUTCを使用するのチェックははずしておかないと世界標準時にセットされてしまいます。
|
デスクトップの設定
最近はデスクトップはGNOMEが標準になりつつありますが、私はほとんどKDEを使用します。長年使って操作が慣れているということと、サーバー管理やプログラム作成をやるときにはちょっとKDEの方が使いやすいような気がします。 まったくお好みで見てくれやパネルなどの設定をします。 いちおうGNOMEの方も設定しておきます。なるべくサーバー設定や管理をGUIでやろうとするとなぜか片方にしかない項目が時折あるので、状況に応じて使い分けることにしています。
|
スクリーンセーバーの怪
サーバーを監視するためにCPU、メモリー、プロセス、通信状況などを常時グラフ化したモニターパネルを表示させています。すべてKDEの標準ソフトを使っています。 およそ一日間の状況を記録していますが、まだサーバーとして稼働はしていないので変化はありません。 常時表示しておくためスクリーンセーバーは使いません。
|
ところがスクリーンセーバーは解除したはずなのにいつの間にか画面が真っ暗になっています。もちろんマウスをちょこっと動かせばすぐに復帰はするのですが...。 いろいろ検索してみると電源管理の機能がこれを勝手にやるらしい。 あまり細かく丁寧に調べる暇もないのでそれらしい対策を一挙実施。 1) | もちろんGNOME、KDE各々のスクリーンセーバーは無効に設定。 | 2) | 電源管理サービス acpi および apmd は停止。 | 3) | KDEのコントロールセンター⇒周辺機器⇒ディスプレイの電源管理でスタンバイ〜電源オフすべて無効。(あるいは省電力ディスプレーを有効にしなければいいのかもしれない。) | 4) | GNOMEのメニューからシステム⇒設定⇒他の個人設定⇒電源管理でスリープをしない設定にする。 | 5) | GNOMEのメニューアプリケーション⇒システムツール⇒設定エディタ(または端末からgconf-editor、なければgconf-editorをインストール)でapps⇒gnome-power-managerを開きそれらしい項目のチェックを外したり。 |
|
…これでやっとKDEでは勝手にスクリーンが消されることはなくなりました。 ところがGNOMEでは相変わらず。まだ何かあるんだろうな。 また暇があったらGNOMEの方を調べることにして、とりあえず今はこれでよしとしておきます。 それにしてもみんなでよってたかって勝手に同じような事をしようとするからいい迷惑といったところ。「みんなでつくるLinux」の欠点だな。 |
|
SELinux
デスクトップを設定していると時折変更したはずの内容が反映されなかったり、書込みエラーが出たり、ソフトが異常終了してプログラムのバグですとか言われます。設定の書込み時に集中していることからSELinuxが関係していると思われました。 たしかインストール時に有効にしてあったはずです。確認。 #getenforce Enforcing となっていることから、有効です。 とりあえず無効にしてみます。 #setenforce 0 これでやるとおかしな現象は出ないことから、とりあえず設定時だけは無効にして設定後有効に戻すことにします。 正当でないアクセスを禁止するのはいいけど、正当なアクセスまで禁止されたんじゃあ、こわくてサーバーには使えんなあ。 SELinuxはまだよくわからないのでやりながら少し勉強することにしましょう。
|
|
さていよいよサーバーの構築を開始します。 システムやハードにからむところを先に行います。 失敗すると最悪再インストールが必要になるかもしれないからです。
|
|
|