PHPベースのファイルマネージャでリモート更新を行う

サーバにファイルマネージャを導入しサイトをリモートから更新可能にする

File Thingie – PHP File Manager

サーバのコンテンツをリモートから更新するために、PHPベースのファイルマネージャを導入してみる。

FTPではなくWebベースのファイルマネージャを探してみたところ、File Thingieというシンプルなやつを見つけることができた。

http://www.solitude.dk/filethingie/

このFile Thingieを利用して、Webサーバのルートディレクトリをリモートから更新可能な状態にしてみた。

https://github.com/haugstrup/filethingie/tarball/master

上のURLからダウンロードすることができる。

インストール

ダウンロードしたtar.gzを展開しWebで見れる状態に設定し以下のURLにアクセスする。

filethingie.local/ft2.php

filethingie-login

ログイン画面が表示された。

File Thingieのルートディレクトリに、

config.sample.php

というファイルが配置されているので、

config.php

にリネームした上で、

define("USERNAME", "admin");
define("PASSWORD", "pass");

ユーザー名・パスワードのログインの設定を行うことができる。IDとpassを設定したらログインしてFile Thingieのルート配下にディレクトリやファイルを作成することが可能になる。

使い方

ログインした後のトップページが画像の状態

filethingie-top

[Create folder]で新規にフォルダやファイルを作成することができる。下の画像は、newフォルダとnew.txtを手動で作成した状態。

filethingie-edit

矢印の部分をクリックすると、ファイルの編集や削除・リネームが可能。

filethingie-menu

ルートディレクトリの変更

標準では、File Thingieのルートディレクトリにフォルダやファイルが作成される。ルートディレクトリを変更するにはconfig.phpの

$ft["settings"]["DIR"] = ".";

を変更する。例えば、直下にrootというフォルダを作成しそこをファイルマネージャのルートにしたい場合は、

$ft["settings"]["DIR"] = "root";

と設定する。

WebサーバのルートディレクトリをFile Thingieのルートとしてマッピングすることも可能で、今回やりたかったことになる。まず、File Thingieのルート直下にシンボリックリンクを作成する。

C:\xampp\htdocs\vhost\haugstrup-filethingie>mklink /d root_directory C:\xampp\htdocs\vhost
root_directory <<===>> C:\xampp\htdocs\vhost のシンボリック リンクが作成されました

root_directoryというWebサーバのルートにリンクしたシムリンクを作成したので、

$ft["settings"]["DIR"] = "root_directory";

とする。すると利用している開発マシンのWebルートではあるが画像のようにフォルダがリストされる。

filethingie-webroot

Webサーバのルートにsymlinkでリンクし一通り操作してみたが、ファイルやフォルダの操作については問題なさそうであった。しかし、ファイルマネージャのルートから検索を行った際にうまく検索できなかった。ルートから一階層下のフォルダでは検索がうまく機能していた。

そのため、シンボリックリンクで別の階層をマッピングする場合は注意しておきたい。

config.phpでは、フォルダやファイル単位でブラックリストやホワイトリストの設定が可能で、拡張子単位での制御や、操作コマンドの有効無効など細かく制御することが可能なので、興味がある人はいろいろと調整してみることをおすすめする。

ファイルマネージャのトレンド

クラウドの台頭でファイルマネージャへの需要があまりないのかもしれないということが気になったので、Googleトレンドで調べてみた。

一定の需要があるようだ。

まとめ

当初Ajaxベースのファイルマネージャを探していたのだが、File Thingieのシンプルさは他のファイルマネージャよりも汎用性が高くサーバへのWebベースでのアップロード要件があるなら調査してみる価値がある。Ajaxベースのもので代表的なファイルマネージャは、

などが存在する。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PHPベースのファイルマネージャでリモート更新を行うの記事にコメントを投稿