シンプルなファイルマネージャ elFinder

試行錯誤した結果 Armbian には、先日シンプルなファイルアップローダでご紹介した phpUploader ではなく elFinder を導入しました。

目次

elFinder

概要

elFinder は phpUploader 同様に PHP で開発されたファイルマネージャです。
phpUploader がフラット(階層が一つのみ)であるのに対し、elFinder は階層を自由に作れます。

複数人での利用ではなく、自分だけで使う予定だったので使い勝手の良い elFinder にしました。

以下に相違点をまとめます。

特徴 phpUploader elFinder
言語 PHP PHP
バックエンド SQLite3 SQLite3
外観 アップロードフォーム ファイルマネージャ
操作性 シンプル カスタマイズ可
階層 フラット(ネストなし) ネスト可
ビューア なし あり
制限:拡張子 あり あり
制限:ファイルサイズ サーバ依存 サーバ依存

なお、今回導入には至りませんでしたが、見た目重視なら Cute File Browser もありだと思います。

導入方法

環境構築

環境に PHP・SQLite を利用するので導入します。

# apt install php php-mbstring php-sqlite3 apache2 libapache2-mod-php

The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.0 libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 libmagic-mgc libmagic1 php
  php-common php-mbstring php-sqlite3 php7.0 php7.0-cli php7.0-common php7.0-json php7.0-mbstring
  php7.0-opcache php7.0-readline php7.0-sqlite3
0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded.

elFinder 取得・展開

ソースをダウンロードして、任意の場所に展開します。

elFinder 設定

規定でファイルのアップロード場所は elFinder 直下の files ディレクトリになるので、Apache ユーザの権限を付与しておきます。

# ls -lhd ./elfinder/files/
drwxr-xr-x 3 root root 4.0K Feb 26 13:44 ./elfinder/files/
root@orangepione:/usr/share/redmine/public# chown -R www-data:www-data ./elfinder/files/
root@orangepione:/usr/share/redmine/public# ls -lhd ./elfinder/files/
drwxr-xr-x 3 www-data www-data 4.0K Feb 26 13:44 ./elfinder/files/
root@orangepione:/usr/share/redmine/public# 

設定ファイル作成

elFinder 直下にある /elfinder/php/connector.minimal.php-dist をリネームして設定ファイルを作成します。

  • テンプレート
    /elfinder/php/connector.minimal.php-dist
  • 作成するファイル
    /elfinder/php/connector.minimal.php

なお、拡張子制限を行わない場合は以下のように uploadAllow に all をセットすればOKです。

# diff -u /tmp/connector.minimal.php ./elfinder/php/connector.minimal.php 
--- /tmp/connector.minimal.php  2019-03-29 13:33:20.219573674 +0000
+++ ./elfinder/php/connector.minimal.php    2019-03-29 13:33:48.606805235 +0000
@@ -127,7 +127,7 @@
            'trashHash'     => 't1_Lw',                     // elFinder's hash of trash folder
            'winHashFix'    => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows too
            'uploadDeny'    => array('all'),                // All Mimetypes not allowed to upload
-           'uploadAllow'   => array('image/x-ms-bmp', 'image/gif', 'image/jpeg', 'image/png', 'image/x-icon', 'text/plain'), // Mimetype `image` and `text/plain` allowed to upload
+           'uploadAllow'   => array('all'), // Mimetype `image` and `text/plain` allowed to upload
            'uploadOrder'   => array('deny', 'allow'),      // allowed Mimetype `image` and `text/plain` only
            'accessControl' => 'access'                     // disable and hide dot starting files (OPTIONAL)
        ),