月別: 2017年3月

macでelFinderを使ってみる – 2 – Basic認証を組み込む

Basic認証機能の追加ファイルをダウンロードする

elFinder<http://elfinder.org/>のサンプルページに「Basic認証サンプル」というフォルダがあります。
ユーザアカウントとパスワードによるサイトへのアクセス制限ができるのでしょうか?
「Basic認証サンプル」フォルダの中の‘BasicAuthExampleAddon.zip’ファイルをダンロードしてみました。

プレースホルダとなる‘elfinder.basicauth.html’とそれに対応する‘main.basicauth.js’、Javascriptファイルの‘elfinderBasicAuth.js’、phpファイルの‘connector.basicauth.php’という4つのファイルを追加することで「Basic認証」機能が動作するようです。

書き換えるべきファイルと箇所

書き換えるべきものは、ユーザアカウントとパスワード設定の箇所と、取り扱うファイルのタイプ制限の指定箇所くらいでしょう。調べてみると、‘connector.basicauth.php’というphpファイルを書き換えるだけで済むようです。

‘admin’と‘user1’のそれぞれをパスワードと合わせて適当に書き換えて、MIMEタイプの指定の箇所では「’uploadAllow’ => array(‘image’, ‘text/plain’),」の行を「’uploadAllow’ => array(‘all’),」に変更しました。

配置

4つのファイルは、‘elfinder.basicauth.html’とそれに対応する‘main.basicauth.js’を(httpルート以下の)‘elfinder.html’のあるディレクトリに置き、‘elfinderBasicAuth.js’、‘connector.basicauth.php’はそれぞれ対応するサブディレクトリに追加します。
ファイルアクセスは、‘http://hostname/elFinder-2.1.22/elfinder.basicauth.html’となります。

以上で、さしたるカスタマイズをするのでもなく使用するのであれば動作するわけですから、elFinderはよく練れたパッケージだと思います。

アクセスしてみる

‘http://hostname/elFinder-2.1.22/elfinder.basicauth.html’へアクセスしてみました。

 

図のように、ログイン画面が出るわけでもなくウィンドウが開いてしまいました。
「えっ!」ログインダイアログが出ないんだっけ? と一瞬固まってしまいましたが、よくよく見るとペイン内のアイコン全てに「鍵アイコン」がついています。

結論から言うと、elFinderのBasic認証オプションとは、ディレクトリ/ファイルへの「read」オンリーと「read/wright」との切り替えをBasic認証によるログイン/ログアウトで切り替えるということでディレクトリ/ファイルへのアクセス制限を行うというもののようです。
つまり、最初の‘elfinder.basicauth.html’へのアクセスでは、ログインしていない(読み出しのみ可能な)状態でページが開き、ツールバー内の”ログインボタン”からログインすると「書き込み可能」なモードに切り替わることになります。

図は、ログイン前とログイン後のファイルに対するコンテキストメニューを比較したものです。
つまり、読み出し(ダウンロードも)だけのアクセス制限をかける場合は‘elfinder.basicauth.html’を使い、‘elfinder.html’を使う場合は読み書き可能なモードでのアクセスとなるということです。
考えてみると、‘elfinder.basicauth.html’ -> ‘connector.basicauth.php’ -> `$_SERVER[‘PHP_AUTH_USER’]` and `$_SERVER[‘PHP_AUTH_PW’]`の呼び出しというステップですから、まあこうなるしかないでしょうね。
サイトそのものへのアクセス制限は、別途にWebサーバーサイドのレベルで「.htaccess」などによるコントロールが必要となるようです。

広告

macでelFinderを使ってみる – 1

elFinderを設置してみる

WEBファイルマネージャーとでも呼べばいいのでしょうか、httpプロトコルを介してブラウザでサーバ上のファイル操作ができるelFinderをOS X 10.11 El Capitanマシンに入れてみました。

今回、elFinderについては、次のサイトを参考にしました。
elFinderを使ってみた
elFinderを設置する

elFinderは、3条項BSDライセンスによるオープンソースのファイルマネージャー用のライブラリ群で、JavaScript、PHPを主体として構成されているようです。

図でわかるように、OS XのFinderライクなインターフェースで動作も軽快です。

特徴としては、

  • 豊富なMIMEタイプをサポートしているので、扱うファイルタイプを制限できる
  • HTML5のサポートによって、ドラッグ&ドロップでの操作ができる
  • フォルダを選択して‘ダウンロード’を実行すれば自動的にアーカイブされてダウンロードがおこなわれる
  • サーバ上でアーカイブの作成・解凍ができる
  • クイックルックのように、サーバ上でプレビューできる(ファイルタイプによって制限はあるようです)
  • ウィンドウフレームのリサイズができる
  • フォルダをドロップすればフォルダごとアップロードできる(Safariではプログレスバーが出たまま作業が進捗せずアップロードできませんが、Firefoxではできます)

先ずは入手

ダウンロードは<http://studio-42.github.io/elFinder/>から。
最新バージョンは、2.1.22でした(更新が比較的早いテンポで行われているようです)。

配置する場所

サーバ上のhttpドキュメントルートにフォルダごと置けばいいでしょう。
その場合、アクセスするには ‘http://hostname/elFinder-2.1.22/elfinder.html’となります。フォルダ名「elFinder-2.1.22」は自由に変更してもOKですが、‘elfinder.html’ファイルの名称変更をするためには、関連するphpファイルとJavaScriptファイル内のリンクを全て変更することになります。

配置前にするべきリネーム処理など

  • ‘elfinder.html’ファイル内のコメント

<!– Rename “main.default.js” to c and edit it if you need configure elFInder options or any things –>

に従って、‘elfinder.html’ファイル内の”main.default.js”を”main.default.js”に書き換え、該当する‘main.default.js’ファイルの名称も変更します。

  • ‘php’フォルダ内の‘connector.minimal.php-dist’ファイルの名称を‘connector.minimal.php’に変更します。

以上で、つまり、2つのファイルのリネームをするだけで、取り敢えずelFinderは動作します。

日本語化のカスタマイズはしなくても初期設定で自動判別されます

上記‘elFinderを設置する’のページでは、日本語化の方法について記載がありますが(バージョン2.1.11の場合での記載)、現行バージョン2.1.22では‘main.js’ファイル内でブラウザの言語設定を読んで自動判別していますので、特に言語設定を改変する必要はありません。テキストエンコーディングは、初期設定で‘utf-8’となっています。

アップロードできるファイルタイプの指定を変更する

変更するにはelFinderの‘php’フォルダにある‘connector.minimal.php’ファイルを編集します。
詳しくは、上記‘elFinderを設置する’のページを参照してください。
私は、「’uploadAllow’ => array(‘image’, ‘text/plain’),」の行を「’uploadAllow’ => array(‘all’),」に変更しました。
「’all’」だと全てのファイルタイプを指定(許可)したことになります。
個別にMIMEタイプを指定して明示的にファイルタイプによるアクセス制限を行いたい時には、このページ<https://github.com/Studio-42/elFinder/blob/master/php/mime.types>のMIMEタイプ一覧が参考になるでしょう。

取り敢えず以上の作業だけで、elFinderは動作します。
(Apacheによるhttpdサービスがアクティブになっていることが前提なのは記すまでもないでしょう)

サーバ上のhttpドキュメントルート内のディレクトリへのファイルのアップロード・ダウンロードがブラウザから実行できるようになるわけですから、FTPの代替えとしても使えるでしょう。
OS X 10.10くらいからpure-ftpdが素直にインストール/構築できなくなってしまった現状では、UIのない状態でftpd.comfをいじって組込みのftpdを利用するよりは扱いやすいファイル転送方法と考えられるでしょう。ユーザID/パスワードによるアクセス制限などは別個に考慮する必要はあるでしょうが。

このままelFinderでオープンにディレクトリアクセスできるようにするつもりはないので、使いこなしを考えてみるつもりです。

TextWranglerの終焉?

TidBITS#1359/06-Mar-2017でTextWranglerが消えてゆく路にあることを知りました。
macOSの次のバージョンへの対応版のTextWranglerは開発されないで消えてゆくということのようです‘http://us11.campaign-archive1.com/?u=d7ffaa16f302eaf61e416e389&id=5c0940cf9b’
BBEditが11.6から”デモ”版の対応を変更して、30日間の評価期間経過後も期限なしで使い続けられるようになっていたことも知りませんでした。
(11のライセンスを取得していて、単純にアップデートをし続けていたので、全く頓着していなかったということです)
barebones.comのこのページ‘http://www.barebones.com/products/bbedit/comparison.html#demo-comparison’に、TextWranglerとBBEditのライセンスなしとライセンスありの3者の機能比較表があります。
BBEditのライセンスなし(使用期限の制限もなし)版でも、TextWranglerのよりも多くの機能が使えることが分かります。
現行のTextWranglerユーザにとって、悪くない選択肢が提示されていると解釈すればいいのでしょう。