2024 從HFS (HTTP File Server)到tinyfilemanager:更輕巧的檔案伺服器選擇

2024 從HFS (HTTP File Server)到tinyfilemanager:更輕巧的檔案伺服器選擇

HFS (HTTP File Server) 曾經是許多用戶的首選,但是隨著hfs漏洞產生,
捨棄了windows平台,在Ubuntu平台上選擇其他更輕量化且符合需求的替代方案。
TinyFileManager 是一款功能豐富的 PHP 檔案管理工具,
易於安裝具備跨平台相容性,重點是一套基於 MIT 授權條款 的開源軟體。
很適合中小型企業或個人用戶使用。




閱讀全文: 2024 從HFS (HTTP File Server)到tinyfilemanager:更輕巧的檔案伺服器選擇

tinyfilemanager下載

tinyfilemanager

訪問tinyfilemanager github選擇Code >Download ZIP直接下載
目前版本為V2.5.3

安裝

安裝過程也很簡單,只要將tinyfilemanager.php放置到web目錄下即可,
如果要讓使用者直接存取可將其改名為index.php,這樣就完成基本的安裝了。

外觀調整

tinyfilemanager

打開網頁預設的帳號為admin,密碼為admin@123
但是版面不是太符合個人需求,想要調整成精簡一點。

如何將H3K拿掉呢?
用文件編輯器,編輯tinyfilemanager.php尋找<svg,大約在357
將刪除<svg </svg>這段的內容

<svg version="1.0"
  .
  .
</svg>
113 0827 04

如何調整@CCP Programmers字樣?
搜尋footer text-center,大約在392
<div class=”footer text-center”></div> 中間的內容清除

<div class="footer text-center">
  .
  .
</div>
113 0827 05

最後調整結果如下,版面清爽多了

tinyfilemanager

配置

調整好外觀之後,最後調整相關設定
也可在各目錄下設定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 的優點包括:

  1. 輕量簡潔:檔案小、資源占用低,適合中小型網站或伺服器。
  2. 易於安裝:只需單一 PHP 檔案,無需額外的依賴套件。
  3. 跨平台支援:基於 PHP,可在任何支持 PHP 的伺服器上運行。
  4. 簡單易用的介面:使用者介面直觀,便於管理檔案與資料夾。
  5. 權限管理:內建多用戶系統,允許設置檔案和目錄的讀寫權限。
  6. 開源自由:基於 MIT 授權,免費且開源,使用者可自由修改和擴展。
  7. 多檔案操作:支持上傳、下載、壓縮、解壓縮等多種檔案管理功能。
  8. 安全性:支援密碼保護與使用者驗證,提升檔案管理的安全性。

工商一下如果有需要幫忙架設的話都很歡迎透過表單聯絡喔。

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

延伸閱讀

517 Views