|
17.ファイルサーバー Samba |
2007年8月22日 |
ファイルサーバーSambaを導入します。 家にはWindowsマシンが3台あり、主にデータのバックアップとビデオなどを入れておくのに使っています。 ついでにインターネットでどこからでもデータにアクセスできるようにsmbwebclientというソフトも導入します。 |
|
インストール
現在のバージョンは3.0.23dです。
設定
127.0.0.1 localhost
127.0.0.1 jiji
次に設定ファイル /etc/samba/smb.conf を直接編集します。
SWATというWeb編集ツールもありますがどうせ一度きりしかやらないので。
[global]
workgroup = MyNet(Windowsワークグループ名)
...これはWIndowsパソコンに設定したワークグループとしっかり合わせておきます。
server string = MyDataServer(エクスプローラに表示されるデータサーバー名)
netbios name = jiji(Windowsネットワーク上のホスト名)
hosts allow = 192.168. 127.(接続を許可するネットワークアドレス)
security = user
encrypt passwords = yes
以上で接続とセキュリティーの基本設定は完了。
続いてデータディレクトリの設定。
ユーザホームディレクトリ[homes]のところはすべて;でコメント化し使いません。
家族といえどもわけのわかっていないのにはアクセスはさせません。
その他[sambadoc]などもコメント化し、共通のデータディレクトリのみアクセスできるようにしておきます。
[printers]も使わないことにしました。
Windowsマシンに直接つないでプリントした方がはるかに早くてきれいでした。
あとはデータディレクトリの設定
[Data]
comment = Kuraganeke Data
path = /MyHomeData/ (データディレクトリの絶対パス)
read only = no
guest ok = no
brouseable = yes
write list = @kuragane
read list = @kuragane
これでDataディレクトリのみkuraganeグループが読み書き可能となります。
#testparm で念のため設定内容を確認」しておきます。
起動
#service smb start
SMBサービスを起動中: [ OK ]
NMBサービスを起動中: [ OK ]
無事起動したようです。でもまだユーザ登録をしていないのでだれもログインはできません。
ログファイル /var/log/samba を見てみます。
smpd.logにはパスワードファイルがないから作ったとかなんたらかんたら書いてありますが致命的エラーはないようです。
/etc/samba/を見ますとsmbpasswdなるファイルが作られていますが内容は空です。
nmpd.logには起動記録以外特に変なメッセージはありません。
再起動してみます。
#service smb restart
...
今度はログには起動記録のみが記されていて問題なさそうです。
ユーザ登録
#smbpasswd -a kiyoshi
New SMB password:(パスワードを入れる)
Retype new SMB password:(再度パスワードを入れる)
Added user kiyoshi.
でOK。
アクセスしてみる
マイ ネットワーク -> ネットワーク全体 -> Microsoft Windows Network -> (ワークグループ名) と開くとServer String に設定したデータサーバー名が出てきます。
これをダブルクリックで開いてユーザ名、パスワードを入力。
無事にデータにアクセスできました。
サーバーへのショートカットをデスクトップにおいておきます。
引き続きSmbWebClientというソフトを導入し、LANの外部からでもsambaサーバーにアクセスできるようにします。
|
ダウンロードとインストール
展開してできた smbwebclient-2.9.php を見てみます。
頭のところに標準的なインストールの仕方が書いてありますので、これを参考に自分のサイトに合わせてインストールします。
/usr/share/smbwebclient/と言うフォルダをつくり、smbwebclient-2.9.phpをsmbwebclient.phpと名前を変えていれます。
/etc/samba/にsmbwebclient.confというファイルをつくり、以下を記述。
<?php
class smbwebclient_config extends smbwebclient {
var $cfgSambaRoot = 'MyNet(Windowsワークグループ名)/jiji(ホスト名)';
var $cfgDefaultLanguage = 'ja';
// all your settings ...
}
?>
これを使いたいサイトのhttp表示ディレクトリにsambaというフォルダをつくり、ここにindex.phpをつくり、以下を記述します。
<?php
$SMBWEBCLIENT_CLASS = 'smbwebclient_config';
include '/usr/share/smbwebclient/smbwebclient.php';
include '/etc/samba/smbwebclient.conf';
$swc = new smbwebclient_config;
$swc->Run();
?>
smbwebclient.phpとsmbwebclient.confをわざわざ別のところに置くのはhttpサーバーの表示可能ディレクトリ外に置くということだな。きっと。
必要に応じて.htaccessを置きます。
接続テストと調整
http://kuragane.jp(sambaを置いたサイト)/samba/
sambaに登録してあるユーザ名とパスワードを入れます。
...ファイルやディレクトリが表示されましたが日本語が見事に文字化けしています。
さっそく調整。
/usr/share/smbwebclient/smbwebclient.phpを見てみます。
var $cfgDefaultCharset = 'ISO-8859-1'; となっています。これが原因だな。
/etc/samba/smbwebclient.confに
var $cfgDefaultCharset = 'EUC-JP';
を追加します。これで文字化けはOK。
あとは好みで少々変更。
やたらと言語設定がいっぱいあるので、smbwebclient.phpの中の
var $strings = array (
....
);
の中の'ja'(日本語)と'en'(英語)以外の定義を/* */でコメントアウトしてしまいます。これで言語メニューにはJAとENしか出なくなります。