共有フォルダを外部公開してみた

WindowsXPの共有フォルダをLinuxマシンで動いてるapache2を利用してWEB公開してみた.

linuxからWindowsの共有フォルダをマウントする

Windowsの共有フォルダをマウントするにはsmbmountというコマンドを使う.
debiansmbmountコマンドは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

こうしてみる.