私のメモです。参考になればいいですが、間違っていたらごめんなさい。
--------------------------------------------------------そういえばetchの次のバージョンlennyがリリースされていたのを忘れていた。思い出したのでクリーンインストールをすることにした。
今回も最小CDイメージからネットワークインストールをする。lennyのカーネル2.6.26は、マザーボードGA-GC230DのネットワークカードRealtek 8101E(rlt8101e)をサポートしているetch-and-halfので特に問題なくインストールできる。
上記のインストーラを用いると難なくインストールが終了する。今回は標準パッケージのみをインストールした。
etch-and-halfからlennyへのアップデートでは、sambaやapacheなどの設定がほとんど変わらないため、インストールの前に/etc以下のバックアップを取っておくと良い。また、以下の記述はetch-and-halfでの設定と重複するものがほとんどである。
まず初めにsambaとsmbfsをインストールする。smbfsパッケージは、Windowsの共有フォルダをLinuxのディレクトリにマウントするコマンド(smbmount)である。
|
|
まず、IPアドレスでの制限やCharset等、基本的なところを設定する。 デフォルトファイルからの変更/追加点は次の通りである。
|
|
|
次に共有フォルダの設定である。今回も複数のユーザが居ることを仮定した次の方針で設定した。
|
[フォルダ1]
或いは
[フォルダ1]
[フォルダ2]
|
|
|
|
|
[フォルダ3]
|
|
次にWindows端末からPuTTYでログインできるよう、sshをインストールして設定する。その後、sshdにログインできるのは限られたクライアントPCとし、且つPuTTYでは鍵による認証でログインするように設定した。
PuTTYの設定は、Windowsのページを参考のこと。
これまで、ssh(依存関係でopenssh-clientとopenssh-server)をインストールしていたが、PuTTYでのログインをするだけならば、openssh-clientとopenssh-serverをインストールするだけである。
|
|
次に/etc/ssh/sshd_configを設定する。インストールした際に作成されたファイルからの変更点は下の通りである。
|
|
|
今回インストールしたopensshのsshd_configでは、初めからssh2のみでのログインとなっていた(前回はssh1,2の両方)。
PuTTYで作成したssh2用の公開鍵をユーザの.sshディレクトリ(/home/username/.ssh)にコピーする。その際、コピーしたファイル名はauthorized_keys2とし、他のユーザから見られないようにパーミッションを400に設定する。これでPuTTYを使ってWindowsからログインできるようになる。
leenyでの設定ファイルは次のように分割されている。
| ・ | apache2.conf | 設定ファイルの構成が記述されたファイル。これはlennyでインストールされるファイルを使う必要がある。 |
| ・ | envvars | lennyで追加されたファイルで、環境変数の設定 |
| ・ | httpd.conf | 空ファイル。下位互換のためにあると思われる。 |
| ・ | ports.conf | ポートの設定 |
| ・ | site-available/default | 公開するディレクトリの設定 |
| ・ | mod-available/default | 使用可能なモジュール |
| ・ | conf.d/charset | デフォルトの文字の設定 |
etch-and-halfのapacheの設定ではhttpd.confにサーバ固有の設定として次の1行を追加したが、これをapache2.confに追加し、httpd.confは空ファイルにした。
| ServerName fishers.homeunix.net |
また、lennyで追加されたenvvarsファイルにapache2の環境変数を記述する。デフォルトではAPACHE_PID_FILEが設定されていないようである。
| export APACHE_RUN_USER=www-data | |
| export APACHE_RUN_GROUP=www-data | |
| export APACHE_PID_FILE=/var/run/apache2.pid |
次に、ディレクトリの設定をする。元のファイルdefaultをfishersというファイルにコピーし、 fishersで以下の項目を変更した(DirectoryIndexは追加した)。
設定変更後、次のコマンドでfishersを有効にする。このコマンドを実行すると、site-enableディレクトリにfisherファイルへのシンボリックリンクが張られてfishersファイルの設定が有効となる。
|
|
|
上の設定はapache2を再起動するまで有効にならない。設定が一通り済んでから再起動するので それまで放っておけばよい。
今度は日本語に関する設定を行う。apache2.confとconf.d/charsetで以下の項目を変更した。 特に、conf.d/charsetを修正しないと、表示されるページが全てUTF-8になるので要注意である。
| LanguagePriority | jaを先頭に |
| # AddDefaultCharset UTF-8 | コメントアウト |
DebianではSSI用のモジュールはデフォルトで無効である。 そのため、最後にSSI用のモジュールを有効にする。
|
|
|
また、使わないモジュールは無効にしておいた方が良い。 デフォルトではmod_python、php4、perlが有効になっていたので、それを無効にした。 (a2enmodは、mod-enableにmod-availableにある実体へシンボリックリンクを 貼り、2dismodはそれを削除するコマンドである。そのため、OSを再起動しても 設定は保持される。)
|
|
|
最後にapache2を再起動して、設定を反映させる。。
|
|
|
etch-and-halfと同様、/etc/network/interfacesファイルに直接記述する。 etch-and-halfで使用したファイルとの変更点は次の通りである。
woodyとetch-and-halfの設定では、「autoからallow-hotplugに変更になった」と記述したがこれは誤りであった。正確には、カーネル起動時にインタフェースを有効にする場合はautoを、カーネルがホットプラグイベント(インターフェースデバイスの抜き差し)を感知した際に起動する場合はauto-hotplugを記述する。
これまでループバックネットワークインターフィースloをDROPしていた。しかし、loをACCEPTしないとsmbdデーモンが起動しないため、これを追加した。また、mount -t smbfsでWindowsの共有ファイルをLinux上にマウントする際、Windowsのport 445に向けてパスワードを発行することがあるため、その設定も追加した。さらに、INPUTチェインでtcpの139、445を使うのは最初の時だけなので、-m state --state NEWを付けた。
検索機能はCGIで行うため、Hyper-Estraierを設定するだけでなく、/etc/apach2/site-available/fishersファイルでCGIを 使えるようにしなくてはならない。 まずfishersファイルに以下のディレクティブを追加する。
|
|
|
次にcgiモジュールを有効にする。/etc/apach2/mods-availableディレクトリに移動し、次のコマンドでcgiモジュールを有効にする(デフォルトでは有効になっているみたいですが・・)。
|
|
|
|
|
|
次にHyper-Estraierをインストールして設定する。 その方法はHyper-Estraierの イントロダクションのページに記述されたやり方そのものである。 僕の環境では、Hyper-Estraierの他に、 libicnv、 QDBM、 zlibも 必要であった。以下、それらのtarballをダウンロード&インストールした後、Hyper-Estraierをインストールする手順を示す(libiconv、QDBM、zlibも同様の手順でインストールできる)。
|
|
|
以上でインストールは終了である。もしHyper-Estraierをアンインストールしたいならば、 tarballを展開したディレクトリでmake uninstallを行えば良い。
次にコンフィグファイルを編集し、検索用インデックスを作成する。 コンフィグファイル(estseek.conf)をエディタで開き、次の箇所を修正する。
|
|
|
上の編集を終えたら、好みでテンプレート(estseek.tmpl)やトップページ(estseek.top)も編集する。 もちろん、estseek.confでtmplfileとtopファイルに自前のものを用いても良い。 編集が終えたら、estseek.cgiのパーミッションを100に、テンプレートなどは400に変更し、 ユーザ、グループをwww-dataに変更する。
|
|
最後に、検索用インデックスを下のコマンドで作成する。 その際、estseek.confのindexnameに指定したディレクトリに検索用インデックスを作成しなくてはならない。
|
|
|
ver.1.0同様、estcmdには指定したディレクトリ以下を除外するオプションが無い(ファイル単位ならばある)。 そのため、例えば/var/www/html/friendを検索結果に表示したくない場合、後から逐一friend配下のファイルを 除外することになる。
次に不要なサービスを停止する。etchではデフォルトのランレベルが2である(/etc/inittab中に記載されている)。 そこで、/etc/rc2.d/にあるシンボリックリンクの名前の頭文字をSからKに変えることでサービスを起動しないようにする。
今回は、使用しない以下のサービスを止めた(頭文字SをKに変更)。
| S20nfs-kernel-server | ネットワークファイル用デーモン | |
| S20openbsd-inetd | TCP Wrapperの1つ。 | |
| S21nfs-common | ネットワークファイル用デーモン |