Nabetap、PHP+HTMLをWindowsで実行するソフト。
Nabetapは、PHPとHTMLの組み合わせで動くホームページ(つまりPHPのCGI)をWindowsソフトにするソフトです。
実態は、PHPとWEBサーバーを同梱した独自のWEBブラウザ(IEコンポーネント使用)です。
せっかくPHPでCGIを作っても、ホームページ上でしか動かないのではもったいないです。
かといってC++などの別の言語に移植してWindows版を作るのは手間と時間がかかります。
Nabetapを使うとPHPやHTMLやJavascriptのソース変更なしでWindowsソフトとしても配布または利用できます。
通常のWindowsソフトのようにローカルの実行のみで、インターネット経由で外部からアクセスできないようにしているのでセキュリティーも安心です。
実行したいPHPスクリプトとHTMLファイルはユーザー側で用意する必要があります。
アイコンや、タイトルバーは変更できますので自分のソフトのように見せることができます。
PHPとHTMLはそのままの状態で使用し、EXEファイルなどに変換はしませんのでPHPやHTML/Javascriptのソースを隠したいという用途には使えません。
WEBサーバーの起動と終了を自動で行いますので通常のWindowsソフトのように起動、終了ができます。
PHP以外にもLuaというスクリプト言語が使用できます。
設定により細かく制限をかけられるので、配布する場合はユーザーに実行して欲しくない機能を禁止できます。(禁止しても破る方法はありますが)
Nabetapは基本的なWEBブラウザ機能を省かないで実装しています。
(ヒストリーの戻る進む、ブックマーク、リロード、停止、文字コード変更、フォントサイズ変更、URL入力バーなどがあります。)
対応OS
Windows Vista以上。
Windows7(32ビット)と、Windows8(32ビット/64ビット)で動作確認。
XPでは動きません。
プログラムは32ビットバイナリですが64ビットでも動きます。
Linux上のwineでは動きません。IEコンポーネントを使っていますがLinuxに本物のIEがないからだと思います。
ダウンロード
Nabetap ダウンロード
インストール
zipファイルを書き込み権限のある任意のフォルダに解凍してください。
インストーラーが欲しい人は、辞書ソフトとして配布している「鍋田辞書P Windows版」をダウンロードしてください。
(鍋田辞書P Windows版はNabetapを利用してPHPスクリプトをWindowsソフトとして配布しています。)
Program Files以下のフォルダにはインストールしないでください。
.\nabetap\nabetap.exe が起動の実行ファイルです。
.\nabetap\setting.exe で設定を行います。
.\nabetap\www\ がPHPスクリプトやHTMLを置くルート(トップディレクトリ)です。
書き込み権限のある書き込み禁止になっていないフォルダにインストールしてください。
プログラムは設定ファイルや一時ファイルをインストールしたフォルダに書き込みます。
(OSのバージョンや設定によりますが、Program Filesは書き込み禁止になっている可能性があるので、その場合、設定ファイルや一時ファイルを書き込むことができません。)
書き込み禁止になるフォルダにはインストールしないでください。
CD-ROMなどに焼いてもある程度動作するように書き込み禁止になっているフォルダで実行してもエラーは出ません。
終了した時のウィンドウサイズで起動しない場合はインストールしたフォルダが書き込み禁止になっている可能性があります。
使用法
setting.exeで、起動時に読み込むファイル(インデックスファイル)を設定してください。
(例えば、index.phpやindex.htmlなどに)
諸事情により設定をリセットするとインデックスファイルはnabeta.phpになります。
nabetap.exeがあるフォルダの下のwwwフォルダ以下のフォルダに、PHPスクリプトやHTMLファイルなどのソースを置いてください。
wwwがWEB上のルートで別のフォルダに変更は不可能です。
実行はnabetap.exeを実行してください。nabetap.exeのファイル名は任意に変更が可能です。
書き込み禁止になっていても動作しますが、設定ファイルや一時ファイルを書き込めません。
プログラムは設定ファイルや一時ファイルをインストールしたフォルダに書き込みます。
Program Files以下のフォルダにはインストールしないでください。
(OSのバージョンや設定によりますが、Program Filesは書き込み禁止になっている可能性があるので、その場合、設定ファイルや一時ファイルを書き込むことができません。)
CD-ROMなどに焼いてもある程度動作するように書き込み禁止になっているフォルダで実行してもエラーは出ません。
終了した時のウィンドウサイズで起動しない場合はインストールしたフォルダが書き込み禁止になっている可能性があります。
対応言語
PHP+HTML/CSS/Javascriptまたは、
Lua+HTML/CSS/Javascript。
HTML/CSS/Javascriptの処理能力はインストールされているIEに依存します。
<?php ~ ?>で囲まれている部分をPHPが実行します。
ファイルの拡張子が.lpで、<? ~ ?>で囲まれている部分をスクリプト言語Luaが実行します。
Luaの場合、IEでは正しく表示されますが、firefox系ではLuaが出力したHTMLソースが表示されます。
(試したLuaの使い方が間違っているのかも知れませんが、回避策が分かりませんでした。)
LuaはWEBサーバーに内蔵されています。
PerlやRubyなどの別の言語は使えません。
動作の仕組み
IEコンポーネント使用の独自WEBブラウザ(nabetap.exe)、WEBサーバー(Mongoose web server改)、PHPで構成されています。
通常は難しいことを考えなくても、通常のWindowsアプリと同じように使えますが注意点はあります。後述の「知っておいたほうがよいこと」を参照。
WEBサーバーの起動、終了はNabetapが自動で行います。
WEBサーバーの設定変更はHTTPポート番号のみ可能で、Nabetapの右クリックメニューから行えます。
ローカル(127.0.0.1またはlocalhost)からののみのアクセスのみ可能で、外部のネットワークからアクセスはできないようにしています。
外部の人がインターネット経由でパソコンのハードディスクの中のホームページを見れないということです。
使用しているMongoose Web serverは改造してありますので、設定ファイルの読み込みやコマンドラインでのオプション指定はできません。
二重起動、複数同時起動が可能です。
ただし複数のフォルダにインストールして、複数のフォルダから同時起動する場合は、同じHTTPポート番号を複数のプログラムで使えないのでHTTPポート番号の変更が必要です。
鍋田辞書Pによる辞書検索機能
オプション機能です。
別途、「鍋田辞書P(nabeta.php)」というPHPスクリプトを入手し、wwwフォルダ内に置き、設定プログラムsetting.exeの「dictionary php file(NabetaJishoP)」項目でファイル名を指定し、辞書データもwwwフォルダ内に置けば辞書検索機能が使えます。
この機能を使いたい場合はデフォルトで使えるようになっている「鍋田辞書P Windows版をダウンロードしたほうが早いと思います。
詳しく知りたい場合は「鍋田辞書P Windows版」側の説明を読んでください。
HTTPポート番号
デフォルトのHTTPポート番号は51627ですが、動的に任意のものに変更できます。
右クリックメニューの"Other Setting" -> "HTTP Port number"で、任意のHTTPポート番号に変更できます。
辞書スクリプトのURLは、http://127.0.0.1:xxxx/nabeta.php のxxxxの部分をHTTPポート番号の数字に変えたものになります。
127.0.0.1 の部分は、localhost という文字列に置き換えることもできます。
このURLを用いれば、Nabetapが起動している間に限り、IEやfirefox、Chromeなどの他のWEBブラウザからアクセスすることが可能です。
Nabetapの場合は、ポート番号の数字を、port の文字に置き換えることができます。
(ただし、リンクの左クリックジャンプは、port の文字列は対応していません。)
Nabetapのブックマークには、ローカルのHTTPポート番号の数字を port に置き換えて記録し、URL展開時に自動的に現在設定しているHTTPポート番号に置き換えます。
これにより、後でHTTPポート番号を変更しても、ブックマークでローカルのURLアクセスが可能になっています。
HTTPポート番号は、他のソフトが使用してない番号にする必要があります。
通常、ほっておいてもHTTPポート番号が競合することは滅多にありません。
ただし、鍋田辞書P Windows版を複数のフォルダにコピーして、複数のフォルダから同時起動した場合には競合しますのでその場合はどちらかのHTTPポート番号の設定を変更してください。
PHPスクリプトの設置
インストールフォルダの下の www フォルダ以下に置いてください。
スクリプトを置くフォルダの変更はできせん。
abc.phpという名前のファイルを置いた場合、URLは、http://127.0.0.1:xxxx/abc.php のxxxxの部分をHTTPポート番号の数字に変えたものになります。
右クリックメニューの"Other Setting" -> "HTTP Port number"で、任意のHTTPポート番号に変更できます。
php\ext フォルダに一部のPHP拡張モジュールを同梱してます。
足りない場合は、PHPをダウンロードして、コピーしてください。
PHP拡張モジュールを有効にするにはphp\php.ini というテキストファイルの内容を書き換える必要があります。
設定プログラム setting.exe
Nabetapには主に配布者向けの設定をGUIでする setting.exe が用意されています。
この設定プログラムは、自作のPHPスクリプトを、自作のWindows版ソフトとして配布したい人のために作りました。
インデックスファイルやアイコンの変更やJavascriptの禁止などができます。
それ以外は、配布者がユーザーに対して機能制限をかける機能ばかりです。
自分で自分に機能制限をかけるという用途はあまり考えられないので配布しないユーザーにはあまり意味のない設定プログラムです。
その他、ボタン表示禁止、URLバー表示禁止、右クリック禁止、コピー禁止、ペースト禁止、テキスト選択禁止、ドラッグ禁止、メニューの項目の一部項目の表示禁止、ボタン表示禁止などができます。
設定ファイル、状態を保存しているファイル
- setting.dat setting.exeで設定した内容を保存しています。配布の場合は一緒に配布します。
- position.dat 前回終了したウィンドウの位置と大きさ(次回この位置と大きさで起動)、ユーザー側のURLバー表示非表示設定、ユーザー側のステータスバー表示非表示設定、フォントサイズ設定、IEメッセージの表示非表示設定を保存します。もし必要なら配布の場合に一緒に配布します。
- otherset.dat HTTPポート番号、WEBサーチエンジン(gooleやyahooなど)を保存しています。もし必要なら配布の場合に一緒に配布します。
- bookmark.csv ブックマークを保存しています。もし必要なら配布の場合に一緒に配布します。
知っておいたほうが良いこと
Nabetapはオンライン向けのPHPスクリプトをローカルで動かすものです。
実態はWEBブラウザであり、IEの機能を継承しています。
IE同様に読み込むHTMLによっては文字化けすることもあります。
その場合は、右クリックのメニューで文字コードを変更してください。
IE同様に古いキャッシュを読んで新しい情報に更新されないこともあります。
その場合はReloadボタンまたはReloadメニューでリロードしてください。
それでもだめな場合はIE側でキャッシュの削除が必要です。
IEの機能を継承しているため、クッキーはIEのクッキーを使います。
ページを見た履歴もIE側の履歴に残ります。
ローカル(127.0.0.1)で使えるクッキーの上限はIE 8以降で50個、IE 7以下は20または50個です。
辞書、入力欄フォントサイズ、IME選択状態など一部の設定をクッキーで保存してますが、クッキーの数が上限に達すると保存できなくなります。
。
ローカルでクッキーを使うプログラムをたくさん使用した場合はクッキーの数が上限に達する可能性があります。
クッキーの削除が必要な場合は、IEで全てのクッキーを削除するか(IEでは部分削除できない)、「Cookies Manager」などのフリーソフトを入手して、ローカル(127.0.0.1またはlocalhost)のクッキーを削除してください。
クッキー削除ツールの動作について保証はしませんので自己責任でお願いします。
よく理屈が分かっていない場合は、WEBサイトの大切なクッキーデータが消える可能性もあるので削除しないほうがよいと思います。
HTTPポート番号は他のソフトが使っていない番号にする必要があります。
Nabetapを複数のフォルダにインストールして複数のフォルダから同時起動する場合は、どちらかのHTTPポート番号を変更する必要があります。
Javascriptエラーについて
IE側の設定でJavascriptエラーの表示を禁止していても、読み込んだページにJavascriptエラーがあればJavascriptエラーがダイアログが出ます。
Javascriptエラーのみを表示禁止にすることはできません。
解決策として、右クリックメニューの"Other Setting" -> "Hide IE message Dialog"で、Javascriptのエラーを含む全てのダイアログメッセージを出さないようにすることができます。
(IE側の設定にもよる。)
この変更でJavascriptのエラーは出なくなりますがセキュリティーなどの確認ダイアログも出なくなりますので注意が必要です。
右クリックメニューが出ない場合
ブラウザのWEB表示部分の右クリックメニューが出ない場合、
- 読み込んだページがJavascriptで右クリックメニューを禁止している。
- 設定プログラム setting.exeで右クリックメニューを禁止している。
のどちらかが理由です。
解決策は、
- URLバーが表示されていれば、URLバーの右クリックメニューからMenuを選択。
- 設定プログラム setting.exeで右クリックメニューを禁止されているなら、setting.exeで解除する。
- Javascriptで右クリックメニューを禁止されているなら、setting.exeでJavascriptを禁止する。
- Javascriptで右クリックメニューを禁止されているなら、禁止されていない別のページを読み込む。
です。
setting.exeでURLバーの表示が禁止されていて、且つJavascriptで右クリックメニューを禁止している場合はそのページでは右クリックメニューを出すことができません。
URLバーがsetting.exeで禁止されていないのに表示されていない場合は、右クリックメニューのView->Hide URL barを解除すればURLバーが出ます。
ファイル構成
nabetp.exe (Nabetap。PHPスクリプトを実行するWEBブラウザ)
mongoosenbt.exe (Mongoose Web serverを改造したもの。CyaSSLとLuaをリンク。GPL v2 とcommercialライセンス)
msvcr110.dll (CyaSSLとLuaリンク版のmongoosenbt.exeが必要としているDLL)
mongoosenbt_mingw.exe(CyaSSLとLuaをリンクしていないMongoose改。使うならmongoosenbt.exeとファイル名を変更する。)
ssl_cert.pem (Mongooseが読み込むSSL関係のファイル。これがないと起動しない。)
setting.dat (setting.exeで作成した設定ファイル。これがないと制限モードで起動し、できることが少なくなります。)
setting.exe (Nabetapの主に配布者向けの設定プログラム。)
bookmark.csv (ブックマークファイル)
readme.txt (「www\readm.htmlを見て下さい。」と書いてあるテキストファイル)
php\php-cgi.exe (PHPインタプリタのファイル。PHPライセンス)
php\msvcr110.dll (php-cgi.exeが必要としているDLL)
php\php5ts.dll (PHPインタプリタのファイル。PHPライセンス)
php\php.ini (PHPの設定ファイル)
php\ext\*.dll (PHP拡張モジュールの一部。鍋田辞書Pでは使用していません。)
www\readme.html (Nabetap 説明HTML)
www\phpinfo.php (PHP情報を表示するPHPスクリプト)
www\sql.php (SQLデータベースのSQLite3のサンプルスクリプト)
www\sqlite3test.db (SQLデータベースのSQLite3のサンプルデータ)
www\lua.lp (スクリプト言語 Luaのサンプルスクリプト)
ライセンス(license)
Nabetapは複数の製品で構成されており、製品ごとにライセンスが異なり著作権者も複数になります。
- Nabetap(nabetap.exe)
ファイル名:nabetap.exe
著作権者:大場正輝
フリーソフト。無料。無保証です。
再配布可。著作権の表記の義務なし。商用利用可。
改変の禁止はしないが、現在ソース公開していない。
ソースを公開するかどうかは未定。
開発環境はC++ Builder XE2。(XE4でもコンパイルできることを確認済み)
- PHP
PHPのライセンスはPHPライセンス(PHP license)です。
著作権者:The PHP Group
フリーソフトウェアです。
無保証です。
再配布には、以下の条件を満たすことが必要です。
- PHPライセンスの著作権が明記されること。
- 「PHP」という語句をいかなる二次的著作物の名称に含めないこと。
- ソースコードが再配布されるいかなる方法においても以下の表示を含むこと。
This product includes PHP, freely available from http://www.php.net/
このパッケージに含まれるファイル名は、php-cgi.exe とphp5ts.dllです。
Ver 5.5.3を使用しています。
- Mongoose(Web server)
GPL v2 と commercial licenceのデュアルライセンスです。
フリーソフトウェアです。
無保証です。
オリジナル著作権者:Sergey Lyubka
ホームページ:http://github.com/valenok/mongoose/
このパッケージに含まれるファイル名は mongoosenbt.exe です。
Mongoose Ver 3.7を若干、改造してあります。
- CyaSSL
GPL または or Commercial Distribution Licenseです。
フリーソフトウェアです。
無保証です。
著作権者:Todd Ouska
ホームページ:http://wolfssl.com/
Mongoose(Web server)改のmongoosenbt.exeにリンク(内蔵)しています。
- Lua(スクリプト言語)
MITライセンス(MIT License)です。
フリーソフトウェアです。
無保証です。
著作権者: Roberto Ierusalimschy , Waldemar Celes , Luiz Henrique de Figueiredo
ホームページ:http://www.lua.org/
Mongoose(Web server)改のmongoosenbt.exeにリンク(内蔵)しています。
- SQLite3(SQLデータベース)
パブリックドメイン(Public domain)です。
フリーソフトウェアです。
無保証です。
開発者: D. Richard Hipp
ホームページ:http://sqlite.org/
PHPの拡張モジュールのphp\ext\php_sqlite3.dllで使用。
及びMongoose(Web server)改のmongoosenbt.exeにリンク(内蔵)しています。
PHPスクリプトをWindows版ソフトとして配布したい方へ
PHPスクリプトと使用データの配布が著作権上問題なく、WEBブラウザ上で動かすものであれば、Nabetapを同梱してWindows版ソフトして配布できます。
PHPスクリプトは一緒に配布しなければならず、PHPスクリプトをEXEファイルに変換するわけではありません。
つまりPHPのソースを見られたくない場合はNabetapを用いた配布は無理です。
setting.exeでアイコンを変更でき、ウィンドウバーのタイトルを任意のものに設定することもできます。
ウィンドウバーのタイトルはHTML側でも設定できますが、その場合はページが変わればタイトルも変わります。
その他、setting.exeでインデックスファイル変更、ボタン表示禁止、URLバー表示禁止、右クリック禁止、コピー禁止、ペースト禁止、テキスト選択禁止、ドラッグ禁止、メニューの項目の一部項目の表示禁止、ボタン表示禁止などができます。
ユーザーに再設定して欲しくなければ、setting.exeを一緒に配布しなければよいでしょう。
ただし、ユーザーがsetting.exeを別途入手してしまえば再設定は可能です。
Nabetapでは、現在、HTMLソース表示とHTMLソース保存機能をつけていません。
ですから、HTMLソースを右クリックで見られたくないという理由では右クリック禁止をする必要はありません。
コピー、ペースト、ドラッグなどを禁止したいなら、右クリックを禁止しなくてもそれらを禁止できるので右クリックを禁止する必要はありません。
WEBブラウザである以上は、リロードや文字化け後の文字コード設定の機能は絶対必要ですし、ヒストリーの戻る、進む機能はあったほうが便利です。
WEBブラウザであるということは隠さないほうが良いと思います。
Nabetapを同梱してPHPスクリプトを配布する場合、Nabetapを使っているということを表記したくなければしなくても構いません。
Nabetapに対する著作権表示義務はありません。
ただし、Nabetapが利用しているPHP、Mongoose、そしてMongooseが利用しているCyaSSLとLuaには著作権表示義務があり、且つ「無保証」の明記が必要なのではないかと思います。
(その他、細かいことがあると思います。)
CyaSSLとLuaとSQLite3をリンクしていないMongoose改のmongoosenbt_mingw.exeも同梱していますので、これをmongoosenbt.exeとファイル名を変更して配布する場合はCyaSSLとLuaの著作権表示は必要ありません。
Luaスクリプトに関してもだいた同じですが、mongoosenbt_mingw.exeはLua機能を持っていないのでファイル名を変えてもLuaスクリプトを実行することはできまぜん。
SQLite3はパブリックドメイン(著作権放棄)なので著作権表示義務はありません。
↑NabetapでPHPスクリプト+HTMLを動かした例
↑Nabetap設定画面。
mongoose source code
mongoose Ver 3.7 original source code
mongoose Ver 3.7 for nabetap patch
This product includes PHP, freely available from http://www.php.net/
Nabetap Ver 1.1 (C) 2013
大場正輝(Oba Masaki) All Rights Reserved.
Nabetap
鍋田辞書P Windows版
鍋田辞書P
鍋田辞書クイズP
鍋田辞書ホームページ