共有フォルダを外部公開してみた
WindowsXPの共有フォルダをLinuxマシンで動いてるapache2を利用してWEB公開してみた.
linuxからWindowsの共有フォルダをマウントする
Windowsの共有フォルダをマウントするにはsmbmountというコマンドを使う.
debianでsmbmountコマンドはsmbfsというパッケージに含まれているので,
#apt-get install smbfs
してインストール.
上記サイトを参考にして,自環境に合わせたコマンドを作成.
smbmount //192.168.0.10/samba /mnt/samba -o username=ユーザーID,password=パスワード,codepage=cp932,iocharset=euc-jp,uid=500,gid=500,fmask=775,dmask=755
気をつける点としては.
apacheで公開する
apache設定したドキュメントルート以下にないディレクトリを公開するには"Alias"を使用する.
apacheの設定ファイルに,
Alias /foo "/mnt/smb/foo"
公開ディレクトリにindexファイルが無い場合apacheが「mod_autoindexモジュール」を使ってディレクトリ内にあるファイルの一覧を作ってくれるので,今回のような用途には当然使用する.
しかし,Aliasで作成したようなVirtualHostの場合は自動で作成してくれないので,
Options +Indexes
こんな感じに指定してやる必要がある.
これでインデックスは作成されたのだが,見てみるとファイル名が凄く短いところで省略されているので表示する文字数を指定する.
NameWidth=[n | *]
NameWidth キーワードでファイル名コラムの幅をバイト数で 指定できます。
- NameWidth (または非設定) で、 mod_autoindex が最適な幅を計算するようにできます。
NameWidth=n で、コラム幅を n バイトに固定します。
NameWidth=* は、必要な長さまでコラムを延ばします。
を参考に,
Options +Indexes IndexOptions +NameWidth=70
こうしてみる.