試行錯誤した結果 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)
),