由於 smbwebclient 是 PHP + smbclient ,所以,我們的基本需求如下:
- PHP4 :PHP 4.1.x 以上。
- smbclient : 建議用 samba3 以後的 smbclient ,之前的版本較無法正確的存取中文檔名。
- smbwebclient : 可以到原始網站下載 http://smbwebclient.sourceforge.net/
下面來看看幾個可以設定的地方:
$cfgSambaRoot
這個選項可以讓我們設定認證完以後,網頁中要顯示的預設資源為何。它格式如下:
- 網域或群組名稱/主機名稱/分享的資源名稱
- 想顯示 CC 網域(群組)中的 CCSERVER 所分享出來 share 資源,就設為:
var $cfgSambaRoot = 'CC/CCSERVER/share'; - 想顯示 CC 網域(群組)中的 CCSERVER 所分享出來的所資源,就設為:
var $cfgSambaRoot = 'CC/CCSERVER'; - 想顯示 CC 網域(群組)中所有的主機,就設為:
var $cfgSambaRoot = 'CC';
預設值為空字串,也就是顯示由 $cfgDefaultServer 所指定的主機瀏覽到資源。
$cfgDefaultLanguage
$cfgDefaultCharset
這兩個選項都是用來設定網頁的編碼用的,
因為我們要用 big5 的中文編碼,所以設成:
var $cfgDefaultLanguage = 'big5';
var $cfgDefaultCharset = 'big5';
$cfgDefaultServer
這個選項讓我們設定要以哪一台主機為網路資源的瀏覽器,如果安裝 smbwebclient 的主機本身就有提供 samba 服務,我們可以用預設值的:
var $cfgDefaultServer = 'localhost';
當然也可以換成自己喜好的主機網址。
在 smbclient 的指令中,它是用來放在 -L 後面的主機名稱,例如:
smbclient -L ccserver
$cfgArchiver
smbwebclient 提供一個很方便的功能,它可以讓我們將整個資料夾打包後才下載,這個選項就是用來讓我們設定用那種格式打包,可用的有:
- tar : 利用 tar 將資料夾打包。
- tgz : 利用 tar + gzip 打包並壓縮。
- zip : 利用 tar + zip 打包並壓縮。
smbwebclient 讓我們可以透過網頁來瀏覽或下載網路芳鄰中的資源、上載檔案、開新資料夾,甚至刪除檔案,就如同在 Windows 中以滑鼠操作即可完成。不過方便歸方便,安全問題應該要特別注意。
特別的玩法
如果 server 中裝的 samba 是 2.x 版,又不想動到原有的 samba,怎樣使用 samba3.x 以後的 smbclient 來解決中文檔名的問題?
下面以 FreeBSD 為例,將測試的過程分享一下。
- 下載適用於該 OS 版本的 samba3.x package
- 將 smbclient 解出來,執行
tar zxvf samba3.tgz bin/smbclient - 下載適用於該 OS 版本的 openldap22-client package
- 將 openldap 的 lib 解出來,執行
tar zxvf openldap22-client.tgz lib - 新增解決中文字用的 smb.conf ,放入底下的內容:
[global]
mangling method = hash
dos charset = CP950
unix charset = CP950
display charset = CP950
- /home/test/smb.conf
- /home/test/smbclient
- /home/test/lib
var $cfgSmbClient = 'export LD_LIBRARY_PATH=/home/test/lib/;/home/test/smbclient -s /home/test/smb.conf ';
上面的 export LD_LIBRARY_PATH=/home/test/lib/
讓 smbclient 需要 openldap 的 lib 時可以到我們設定的路徑中去找到。
而 smbclient 的 -s 則可以指定要讀取的設定檔路徑。
經過這樣的處理,smbwebclient 就可以利用 samba3 的 smbclient 來正常的存取中文名稱了。
相關文章
沒有留言:
張貼留言