最終更新日:

KNOPPIX実験室


サーバ関係の実験結果報告




 

Howto3-1

sambaサーバを、より便利に使うために

  • ブート時にsambaサーバを自動起動する

  • Windowsで普段使っているユーザ名とパスワードで自動的にログインする

sambaの概要

sambaはLinuxなどのUNIX系のOSでWindowsで一般的なディスク共有のネットワークに参加するために使用するプログラムです。その機能は、大きく、クライアント機能とサーバ機能に分かれます。

クライアント機能は他のWindowsマシンで公開している共有ディスクをマウントして読み書きするものです。最近は、この機能がすでに、Konquerorに組み込まれており、場所ツールバーに以下のような形式で指定するだけで簡単に使用できるようになっています。

  • smb://ワークグループ名/

  • smb://マシン名/

  • smb://ユーザー名@マシン名/

サーバ機能はいくつかのディレクトリを共有ディスクとしてWindowsネットワークに公開するものです。KNOPPIXには、すでに、このsambaサーバを簡単に起動するプログラム「Start Samba Server」が組み込まれています。

 

設定方法

ここでは、「Start Samba Server」で自動的に設定されたsambaサーバを、Windowsで普段使っているユーザ名とパスワードで自動的にログイン出来るように設定変更した上で、このsambaサーバが、KNOPPIX起動時に自動的に起動されるように設定します。

(1)「Start Samba Server」を使ってsambaサーバを起動します。このとき、ユーザknoppixのパスワード設定が要求されますが、そのパスワードはWindowsで普段使っているユーザのパスワードに合わせておきます。

(2)ユーザknoppixの別名として、Windowsで普段使っているユーザ名を定義します。具体的には以下のようにします。

/etc/samba/smb.confを修正

[global]

 

# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root
username map = /etc/samba/user.map <---この1行を追加

; "security = user" is always a good idea. This will require a Unix account
; in this server for every user accessing the server.
security = user

/etc/samba/user.mapを追加 Windows上のユーザ「miyawaki」と「mywkfmnr」を共に「knoppix」の別名として
定義する場合は、以下の2行をこのファイルに記入します。

knoppix=miyawaki

knoppix=mywkfmnr

なお、別名は複数設定できるますが、別名にはパスワードは設定できません。
元のユーザknoppixのパスワードをそのまま使うことになります。

(3)sambaサーバをランレベル3〜5で自動起動するように設定します。具体的には、Konsoleで以下のコマンドを実行します。

$ sudo -s

# for i in 3 4 5; do ln -sfn /etc/init.d/samba /etc/rc$i.d/S70samba; done

# for i in 0 1 2 6; do ln -sfn /etc/init.d/samba /etc/rc$i.d/K30samba; done  

(4)この設定を保存します。ただし、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)では自動起動の設定で使用しているシンボリックリンクを正しく保存できないので、本実験室で提供している改良版のsaveconfigをご利用ください。
本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、すでにsaveconfigは改良版に書き換えられていますので、通常通り、「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をそのままご利用いただけます。それ以外の方は、自動起動の設定をシンボリックリンクを使わずに行うなどの工夫をした上で、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をご使用ください。

 

Howto3-2

ftpサーバを起動する。

概要

sambaがあれば、FTPはいらないような気がするかもしれませんが、WindowsとLinuxでは使用する文字コードや改行コードが違っているので、これを自動的に変換してくれるFTPの方がsambaより重宝することがあります。

たとえば、Windows用のFFFTPのようなフリーソフトでも、ASCIIモードでFTPするときには、文字コードや改行コードを自動的に変換してますし、変換方法も細かく指定できます。しかし、これをFTPを使わずにやろうとすると、意外と苦労します。

KNOPPIXでは、ftpd(FTPサーバのデーモン)もインストールされているのですが、そのままではFTP出来ないように設定されているので、若干の設定変更が必要です。

 

設定方法

/etc/hosts.allowに以下の1行を追加し、その設定を保存してリブートすれば、FTPが使えるようになります。

ssh sshd : ALL@ALL : ALLOW
ftp ftpd in.ftpd : ALL@ALL : ALLOW <---この1行を追加
ALL : 127.0.0.1 LOCAL : ALLOW
ALL : ALL@ALL : DENY

しかし、このファイルは/KNOPPIX/etc/hosts.allowへのシンボリックリンクになっているので、少々工夫が必要です。

具体的には、以下のようにします。

(1)/etc/hosts.allowをシンボリックリンクから実体のあるファイルに変更(実体化)します。

(方法1)

本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、実体化のための便利なツール「mkwritable」が使えるので、Konsoleで以下のコマンドを実行するだけですみます。

$ sudo  -s

# mkwritable  /etc/hosts.allow

(方法2)

「mkwritable」を使わない場合は、Konsoleで以下のコマンドを実行します。

$ sudo  -s

# rm  -f  /etc/hosts.allow

# cp -p /KNOPPIX/etc/hosts.allow  /etc/hosts.allow

(2)テキストエディタ(viやKWriteなど)を使って/etc/hosts.allowに、上に示した1行を追加します。

(3)ユーザKNOPPIXのパスワードを設定します。ここで設定するパスワードはOS(linux)に対して設定するパスワードです。sambaの設定のときに指定したパスワードはsambaに対するパスワードだったので、それとは別物です。OSとsambaで異なったパスワードを設定することもできます。

$ sudo  -s

# passwd knoppix
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#

(4)これで、ftpサーバを起動する準備が整いました。ftpサーバを起動する場合は、

Konsoleで以下のコマンドを実行します。

$ sudo  -s

# cd /etc/init.d

# inetd start

(5)ftpサーバをランレベル3〜5で自動起動するように設定します。具体的には、Konsoleで以下のコマンドを実行します。

$ sudo -s

# for i in 3 4 5; do ln -sfn /etc/init.d/inetd /etc/rc$i.d/S60inetd; done

# for i in 0 1 2 6; do ln -sfn /etc/init.d/inetd /etc/rc$i.d/K40inetd; done  

(6)この設定を保存します。ただし、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)では自動起動の設定で使用しているシンボリックリンクを正しく保存できないので、本実験室で提供している改良版のsaveconfigをご利用ください。

本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、すでにsaveconfigは改良版に書き換えられていますので、通常通り、「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をそのままご利用いただけます。それ以外の方は、自動起動の設定をシンボリックリンクを使わずに行うなどの工夫をした上で、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をご使用ください。

 

Howto3-3

Apache+PHP4でWebサーバを起動する。

(Perl等によるCGIも使える)

概要

ApacheもPHP4も共にKNOPPIXにはインストールされているので、単に起動してやるだけですぐに使えます。

ここでは、まず、apacheを起動して、簡単なサンプルを表示させて見ます。

ついで、簡単な設定変更例として、以下の設定変更方法を紹介します。

起動方法

Apache+PHP4を起動するには、Konsoleで以下のコマンドを実行します。

$ sudo  -s

# cd /etc/init.d

# apache start

起動できたら、Konquerorの場所バーを使って「http://localhost/」に接続してみましょう。以下のようなページが表示されるはずです。

KNOPPIXでは、Linuxのドキュメント(/usr/share/doc/)もブラウザから読めるようになっていますね。

 

この状態で、もうPHP4も使えるようになっています。その確認のために、php-infoを実行してみましょう。Konsoleで以下のコマンドを実行してください。

$ sudo  -s

# cd /var/www

# echo '<?phpinfo();?>' >test.php

そして、Konquerorの場所バーを使って「http://localhost/test.php」に接続すると、以下のようなページが表示されるはずです。

 

もちろん、Perl等によるCGIも使えます。ただし、cgi-binのディレクトリがCD-ROMの中(/KNOPPIX/usr/lib/cgi-bin)にあるので、使えるようにするには、このディレクトリを実体化する必要があります。しかし、/usrからCDROMに入っているため、これを手操作でやるのは少々厳しいと思います。

そこで、ここでは、本実験室で提供している実体化のための便利なツール「mkwritable」を使って実体化する方法を紹介します。本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、すでに「mkwritable」が組み込まれているので、以下のコマンドをKonsoleでそのまま実行できます。それ以外の方は、あらかじめ、本実験室から「mkwritable」をダウンロードし、PATHの通ったディレクトリに配置してから、以下のコマンドを実行してください。

$ sudo  -s

# mkwritable /usr/lib/cgi-bin

これで、/usr/lib/cgi-binにPerl等で書かれたCGIをおくことが出来るようになりました。

そこで、以下のような簡単なCGIを「/usr/lib/cgi-bin/printenv.cgi」に置いてテストしてみましょう。(このサンプルは、CGI実行中に参照できる環境変数の一覧を出力するものです。興味深い機能がコンパクトにかかれているので、このような動作確認には重宝します。しかし、このサンプルは、どこかの本か雑誌に載っていたものですが、どこに載っていたものか分からなくなってしまいました。もし、ご存知の方、いらっしゃいましたら、お教えいただけるとありがたいです。)

#!/usr/bin/perl

print "Content-type: text/plain\n\n";

foreach $var (sort(keys(%ENV))) {

$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";

}

この状態でKonquerorから「http://localhost/cgi-bin/printenv.cgi」に接続すると、CGIの実行結果がKWriteで開かれます。

どうです?

簡単に、HTML、PHP、Perl(CGI)が使えてしまいましたね。

最後に、Apacheを停止するときは、以下のようにします。

$ sudo  -s

# cd /etc/init.d

# apache stop

 

設定変更方法

Apache+PHP4をよりうまく利用するための設定変更方法を以下に紹介します。

設定項目 設定方法
ブート時に
自動起動する
Konsoleで以下のコマンドを実行します。
$ sudo -s

# for i in 3 4 5; do ln -sfn /etc/init.d/apache /etc/rc$i.d/S80apache; done

# for i in 0 1 2 6; do ln -sfn /etc/init.d/apache /etc/rc$i.d/K20apache; done  

ドキュメントルートと
cgi-binを/etcに移
動して「KNOPPIXの
設定を保存」で保存
出来るようにする。

この設定にはApacheの設定ファイル(/etc/apache/httpd.conf)を更新する必要がありますが、KNOPPIXでは、この設定ファイルはCDROM内のファイルへのシンボリックリンクになっているため、これを実体化しないと更新できません。ここでは、本実験室で提供している実体化のためのツール「mkwritable」を使って実体化する方法を紹介します。

本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、すでに「mkwritable」が組み込まれています。それ以外の方は、あらかじめ、本実験室から「mkwritable」をダウンロードし、PATHの通ったディレクトリに配置してから、以下のコマンドを実行してください。

通常のKNOPPIXでは、/etcはルートファイルシステムの中に確保されています。しかし、ルートファイルシステムは全体で3.5MBしかないため、この説明のような使い方をすると、往々にして不足しがちです。本実験室で提供しているminiroot.gzでは、ブートオプションに「mvetc」を指定すると、/etcディレクトリを/ramdisk/etcに移動するので、このような問題は発生しません。本格的にご利用になる場合は、本実験室で提供しているminiroot.gzの使用をご検討ください。

Apacheの設定ファイル(/etc/apache/httpd.conf)を実体化し、/etc内にドキュメントルート(/etc/www/html)とcgi-bin(/etc/www/cgi-bin)を確保しするには、Konsoleで以下のコマンドを実行します。

$ sudo -s

# mkwritable /etc/apache/httpd.conf

# mkdir -p /etc/www/{html,cgi-bin}

# cp -p /KNOPPIX/var/www/index.html /etc/www/html

# cp -p /usr/lib/cgi-bin/* /etc/www/cgi-bin 

最後の2つのcpコマンドは、上の起動方法の解説で使用したサンプルプログラムを、新たに確保したディレクトリにコピーするためのものです。必要に応じて別のものに変更して結構です。

Apacheの設定ファイルの変更方法は下表の通りです。変更箇所の行番号は明記しませんが、変更前の行の内容を参考に検索して変更箇所を探してください。

変更項目 変更内容
ドキュメントルートの変更 (変更前)DocumentRoot /var/www

(変更後)DocumentRoot /etc/www/html

(変更前)<Directory /var/www/>

(変更後)<Directory /etc/www/html/>

cgi-binディレクトリの変更 (変更前)ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

(変更後)ScriptAlias /cgi-bin/ /etc/www/cgi-bin/

(変更前)<Directory /usr/lib/cgi-bin/>

(変更後)<Directory /etc/www/cgi-bin/>

PHPでASP風のタグ
<%〜%>を使えるよう
に設定変更する。

この設定にはPHPの設定ファイル(/etc/php4/apache/php.ini)を更新する必要がありますが、KNOPPIXでは、この設定ファイルはCDROM内のファイルへのシンボリックリンクになっているため、これを実体化しないと更新できません。ここでは、本実験室で提供している実体化のためのツール「mkwritable」を使って実体化する方法を紹介します。Konsoleで以下のコマンドを実行してください。
$ sudo -s

# mkwritable /etc/php4/apache/php.ini

PHPの設定ファイルの変更方法は下表の通りです。変更箇所の行番号は明記しませんが、変更前の行の内容を参考に検索して変更箇所を探してください。

変更内容
(変更前)asp_tags = Off

(変更後)asp_tags = On

 

以上で設定した内容を保存する場合は、「KNOPPIXの設定を保存」(またはsaveconfigコマンド)を使用します。ただし、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)では、自動起動の設定で使用しているシンボリックリンクを正しく保存できないので、本実験室で提供している改良版のsaveconfigコマンドをご利用ください。

本実験室で提供しているminiroot.gzを使っている方で、ブートオプションの中に「linuxrc2 mvetc」を指定している方は、すでにsaveconfigコマンドは改良版に書き換えられていますので、通常通り、「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をそのままご利用いただけます。それ以外の方は、自動起動の設定をシンボリックリンクを使わずに行うなどの工夫をした上で、KNOPPIXの標準の「KNOPPIXの設定を保存」(またはsaveconfigコマンド)をご使用ください。