Asuterminal
ウェブラウザでサーバーをコマンド操作するPHPスクリプト
UNIXライクコマンド内蔵
最終更新日 2016.9.16

ダウンロード
ダウンロード asuterminal1.0.zip

Asuterminal とは
WEBブラウザ(IE、firefox、Chromeなど)にコマンド入力欄を出してサーバー内のコマンドを実行するPHPスクリプトです。
インターネットサーバー(例えばレンタルサーバー)を操作するSSHとFTPの代替になるPHPスクリプトです。
SSHの使用に制限があるサーバーでコマンド操作をするために開発しました。
AsuterminalはSSH機能もFTP機能も使いません。
サーバー側のOSのコマンドを使えない場合でも、AsuterminalがPHPで実装したUNIXライクの内部コマンドで圧縮解凍やその他のファイル操作をすることができます。
(サーバー側に制限がかけられていてできない場合もあります。)
UNIXターミナルやWindowsのコマンドプロンプトのようにcd コマンドでカレントディレクトリを変更できます。
ファイルのアップロードとダウンロードの機能もあります。

ライセンス
2-clause BSD license
無料です。
著作権は大場正輝が保有します。

前提条件
サーバーのOSは特に問いません。
UNIXライクOSでもWindowsサーバーでも。
あまり意味はありませんがWindowsローカルでもHTTPサーバーを設定すれば動きます。
設定とインストール
サーバー上のウェブ領域にAsuterminal(asuterminal.php)をなるべくファイル名を変えてからアップロードします。
ファイルはこの一個だけです。
パーミッションはスクリプトが動作する場合は600がよいと思います。
サーバー上のファイルを消したり書き換えたりダウンロード、アップロードなど大概のことができるので他人に操作されないように注意してください。
セキュリティーのためそしてレンタルサーバー運営に問題視されないようにこのスクリプトは使い終わったらすぐにサーバー上の公開領域から消したほうが無難です。
$Docroot1と$Servername1を正しく設定すると内蔵コマンドのals(ls)のファイル一覧のファイルをクリックすることでダウンロードできるようになります。
もし設定しなくても他の機能は動作します。
内蔵コマンド
AsuterminalはPHPで実装したUNIXライクのコマンドを内蔵しています。
AsuterminalがPHPで実装して内蔵しているコマンドを内部コマンドと呼ぶことにします。
サーバー側のコンピューターにインストールしてあるコマンドを外部コマンドと呼ぶことにします。
内部コマンドは、ls , cd , pwd , chdir , rm , rmdir , chmod , cp , mv , mkdir , md , exec , unzip , zip , helpです。
内部コマンドは先頭にaを付けた、als , acd , apwd , achdir , arm , armdir , achmod , acp , amv , amkdir , amd , aexec , aunzip , azip , ahelpの別名を持っています。
内部コマンドは正規表現に対応しています。
内部コマンドを優先して実行するように設定している状態で同名の外部コマンドを使う場合は、exec コマンド名 と入力して実行してください。(例、exec ls)
外部コマンドを優先して実行するように設定している状態で同名の内部コマンドを使う場合は、コマンド名の先頭にaを付加してください。
(例、ls なら als)
内蔵コマンドのacp/cpは、パーミッションなどの属性をコピーできません。
内蔵コマンドのazip/zipコマンドはパーミッションなどの属性を保存できません。SJISファイル名に対応していません。
内蔵コマンドは同名のUNIXコマンドの全ての機能を持っているわけではありません。
できないこと
入力待ちするコマンド、対話式のコマンドは使えません。
例えば、「cat abc.txt | more」は、moreが入力待ちするので使えません。
テキストエディタ、ウェブブラウザ、FTPコマンドなどは使えません。
一行のコマンド入力で一回の操作が完結して終了するコマンドだけ使えます。
内部コマンドは一行に複数のコマンドには対応しておらずリダイレクトやパイプも対応していません。
外部コマンドのみの組み合わせでは一行に複数のコマンドに対応しリダイレクトやパイプも対応しています。
カレントディレクトリの移動は、cd、chdirコマンド以外のコマンドでカレントディレクトリを変えても次ページには反映されません。
「cd /aaa/bbb」のようなcd単独の入力は次ページに移動したディレクトリが反映されますが、
「ls -l;cd /aaa/bbb」(UNIX系シェル)や、「dir & cd \aaa\bbb」(Windows系シェル)のようなコマンドを入力しても次ページに移動したディレクトリは反映されません。
入力されたコマンド文を読んで先頭にcdコマンドが書かれているかどうかでカレントディレクトリの変更を試みているからです。
外部コマンドはサーバーのOSのシェル上で動くため、サーバーのOSのシェルの機能(例えばパイプやリダイレクト)が使えますが、内部コマンドはサーバーのOSのシェル上で動かないため、その機能は使えません。
SSHを使えないレンタルサーバーでファイル圧縮解凍
FTPではサーバー内のファイル圧縮解凍ができません。
通常はSSHでサーバー内のファイルの圧縮解凍を行いますがSSHを使えないレンタルサーバーもあります。
例えば、以下のサーバーとプランの組み合わせではSSHを使えません。
これらのサーバーでもAsuterminalのPHPで実装したzip、unzipコマンドで正規表現が使える圧縮や解凍が可能です。
海外無料レンタルサーバーHostingerでファイル圧縮解凍
無料プランもある便利な海外レンタルサーバーのHostingerですが、
ウェブ版のSSHではユーザーが使えるコマンドを極端に制限しています。
そのためコマンドでZIPファイルの圧縮解凍ができません。
そんなHostingerでもAsuterminalのPHPで実装したzip、unzipコマンドで正規表現が使える圧縮や解凍が可能です。
海外からの操作を禁止しているサーバーでも海外で使える。
極めて少数ですが海外IPでの管理アクセスを拒否しているレンタルサーバーもあります。
その場合でも日本のIPですでにAsuterminalを設置している場合は海外旅行中でもサイトの更新ができます。
AsuterminalはProxyサーバーをかまさず直接アクセスできるため、無料の公開Proxyサーバーをかますよりは高速にアクセスできると思います。
例えば、以下のサーバーが海外IPからの管理操作を禁止しています。
PHPのexec()関数を禁止しているサーバーでも使える。
サーバー側のコマンドのみに依存しているスクリプトでは、PHPのexec()関数をサーバー側の設定で禁止されているともう使うことができません。
Asuterminalは、exec()関数を使えない場合でもPHPで実装した内蔵のUNIXライクコマンドでZIPファイルの圧縮解凍を含めた各種ファイル操作ができます。
正規表現にも対応しています。
Asuterminalも、exec()関数が使えないサーバーでは、サーバーにインストールされているコマンドを使うことは不可能なため、あくまで内蔵コマンドが使えるのみとなります。
例えば、以下のサーバーがexec()関数に対応していません。
待たずにすぐにコマンド操作ができる。
SSHに対応しているサーバーであっても、その都度IP登録をして設定が反映されるまで待たないと使えないサーバーがあります。
待てばいいとは思いますが、どうしても待てない場合もあるかも知れません。
Asuterminalは待たずにすぐにコマンド操作ができます。
コマンドを使う画面でダウンロード、アップロード
Asuterminalはローカルとサーバー間のダウンロード、アップロードもできます。
ダウンロードはファイルを入力する方法と、als(ls)コマンドで表示されたファイル一覧をクリックしてダウンロードする方法があります。
als(ls)コマンドの一覧ファイルクリックでダウンロードするには、スクリプト内のディレクトリ、ドメインの設定が必要になります。
ダウンロード及びアップロードはバイナリモードで行います。つまりテキストの行末コードの変換をしません。
(古いバージョンのPHPでバイナリモードになるかどうかは知りません。)
ダウンロードはダウンロード先ディレクトリ(フォルダ)を聞いてきます。
内蔵コマンドのals/lsコマンドでのファイルクリックでダウンロードする場合は設定が必要です。
アップロードはAsuterminalのカレントディレクトリにアップロードします。
アップロードできるファイルサイズはPHP側で設定された制限の範囲内になりますので大きいサイズのアップロードには向きません。
アップロードのファイルサイズはPHPで上限が設定されていてデフォルトは2Mだと思います。
php.iniのupload_max_filesizeまたは.htaccessのphp_value upload_max_filesizeでアップロードサイズの上限を変更できると思います。
php.iniはアップロードを禁止する設定もできます。
その他にもphp.iniにはアップロード関係の設定項目があります。
ユーザーができるPHPの設定とは別にレンタルサーバー側がファイルサイズ上限などの制限をかけている場合もあると思います。
CORESERVER、VALUE SERVER 、XREAにも対応。
CORESERVER(コアサーバー)、VALUE SERVER(バリューサーバー) 、XREAにも対応しています。
IP登録が必要とはいえ、SSHに対応しているのでそれを使えばいいと思いますが。
セキュリティー
サーバー上のファイルを消したり書き換えたりダウンロード、アップロードなど大概のことができるので他人に操作されないように注意してください。
パスワード機能はありますが、ウェブブラウザはパスワードを記録する機能を持っているものが多いため、特に他人のパソコンで使う場合は必要です。
ブラウザによってはパスワードを記録しないプライベートモード(IEのInPrivate、firefoxのプライベートウィンドウなど)があったり、パスワードを記録する機能がないブラウザ(あーすブラウザなど)もありますのでそれらを使ったほうがいい場合もあると思います。
スクリプトの名前はデフォルトのasuterminal.phpから変更してください。
パスワードはデフォルトから変更して使ってください。
パスワードはなるべく長めに複雑にしてください。
スクリプトをアップロードするディレクトリは未公開の秘密の場所にしてください。
なるべく使ったらすぐにスクリプトをサーバーから削除してください。
パスワードはなるべく頻繁に変更してください。
対応していないサーバー
PHPが使えない、PHPに致命的な制限がかけられている、ファイル一覧の取得に制限がかけられているサーバーでは使えないもしくは、機能にに制限があります。
例えば、以下のレンタルサーバーでは、おそらく使えないと思います。
バージョン


メール(お問い合わせ)

あーすブラウザ
オンライン鍋田辞書
鍋田辞書ホームページ