HFS (HTTP File Server) 曾經是許多用戶的首選,但是隨著hfs漏洞產生,
捨棄了windows平台,在Ubuntu平台上選擇其他更輕量化且符合需求的替代方案。
TinyFileManager 是一款功能豐富的 PHP 檔案管理工具,
易於安裝具備跨平台相容性,重點是一套基於 MIT 授權條款 的開源軟體。
很適合中小型企業或個人用戶使用。
tinyfilemanager下載
訪問tinyfilemanager github選擇Code >Download ZIP直接下載
目前版本為V2.5.3
安裝
安裝過程也很簡單,只要將tinyfilemanager.php放置到web目錄下即可,
如果要讓使用者直接存取可將其改名為index.php,這樣就完成基本的安裝了。
外觀調整
打開網頁預設的帳號為admin,密碼為admin@123
但是版面不是太符合個人需求,想要調整成精簡一點。
如何將H3K拿掉呢?
用文件編輯器,編輯tinyfilemanager.php尋找<svg,大約在357行
將刪除<svg 到 </svg>這段的內容
<svg version="1.0"
.
.
</svg>
如何調整@CCP Programmers字樣?
搜尋footer text-center,大約在392行
將<div class=”footer text-center”> 到</div> 中間的內容清除
<div class="footer text-center">
.
.
</div>
最後調整結果如下,版面清爽多了
配置
調整好外觀之後,最後調整相關設定
也可在各目錄下設定config.php套用不同的設定
//Default Configuration
$CONFIG = '{"lang":"en","error_reporting":false,"show_hidden":false,"hide_Cols":true,"theme":"light"}';
將hide_Cols改為true,Hide Perms/Owner columns(隱藏權限/擁有者列)
//Application Title
define('APP_TITLE', 'Demo File Manager');
調整頁面抬頭為Demo File Manager
$auth_users = array(
'admin' => '*****',
'test' => '*****',
);
調整預設的帳號與密碼,及新增使用者
請參考TinyFileManager wiki – Security and User Management這篇的說明
// user specific directories
// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...)
$directories_users = array(
'test' => '/var/www/html/test'
);
設定使用者登入後的目錄,限制在特定目錄,也就是登入後的首頁。
不同的使用者可以設定不同的目錄。
// Default timezone for date() and time()
// Doc - http://php.net/manual/en/timezones.php
$default_timezone ='Asia/Taipei'; // UTC
調整時區為Asia/Taipei,這樣的好處是可以看到檔案上傳的時區的時間
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
//$root_path = $_SERVER['DOCUMENT_ROOT'];
$root_path = '/var/www/html/test';
設定根目錄
// Files and folders to excluded from listing
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
$exclude_items = array(
'index.php',
'*.bak',
'*.php',
'*.js'
);
排除顯示的檔案及格式。
排除index.php、*.bak、*.php、*.js
// abs path for site
//defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : ''));
define('FM_ROOT_URL','http://'.$http_host.'/test');
定義Direct Link的連結,不然連結會多出$root_path設定的字串
原來那行可以先註解掉。
分享檔案時直接就透過連結分享,相當的方便。
總結
TinyFileManager 的優點包括:
- 輕量簡潔:檔案小、資源占用低,適合中小型網站或伺服器。
- 易於安裝:只需單一 PHP 檔案,無需額外的依賴套件。
- 跨平台支援:基於 PHP,可在任何支持 PHP 的伺服器上運行。
- 簡單易用的介面:使用者介面直觀,便於管理檔案與資料夾。
- 權限管理:內建多用戶系統,允許設置檔案和目錄的讀寫權限。
- 開源自由:基於 MIT 授權,免費且開源,使用者可自由修改和擴展。
- 多檔案操作:支持上傳、下載、壓縮、解壓縮等多種檔案管理功能。
- 安全性:支援密碼保護與使用者驗證,提升檔案管理的安全性。
工商一下如果有需要幫忙架設的話都很歡迎透過表單聯絡喔。
Q&A
Q.如果遇到上傳之後檔案大小與實際檔案不一致的問題該如何解決?
A.先確認系統上的空間是否足夠,可利用df指定查詢系統上硬碟的空間使用率
df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 392M 1.5M 391M 1% /run
/dev/sda3 49G 30G 17G 65% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 512M 6.1M 506M 2% /boot/efi
tmpfs 392M 76K 392M 1% /run/user/128
tmpfs 392M 64K 392M 1% /run/user/1000
可以看到/dev/sda3 使用率為65%,如果空間為99%太滿了是傳不上去的。
因為tinyfilemanager是使用html的目錄空間,因此我們可以查詢html下使用了多少空間。
du -sh /var/www/html/*
28G /var/www/html/download
範例中使用量為28GB
延伸閱讀