TomnekoSoft.com

Backend blog for TomnekoSoft.com


Tomneko Labo

Xperia で droidWall を使う

Xperia で droidWall を使う



・droidWall は Windows Firewall のようなパーソナルファイヤーウォール
・原理的に android の root化が必要

Xperia を root化する



・z4root をインストールする
・android market にあったようだが現在は削除されている
・xda-developers.com で配布されている、ユーザー登録しないとダウンロード出来ないのでする。また、PCのブラウザじゃないとダメなようだ。
 http://forum.xda-developers.com/showthread.php?t=833953
・ユーザー登録はメールから確認リンクを踏まないと有効にならないので注意
・Xperiaへファイルを転送する。、僕はDropboxに放り込んで共有した
・z4root.apk を実行すると、メニュー画面から Temporary root と Permanent rootが選択できる
・後で元に戻せるので、Permanent rootをクリックすると、再起動して root化完了
・アプリの一覧に、z4root が入っていて、実行するとre-rootとun-rootが選択できる
・また、superuserというアプリがインストールされて、root権限を必要とするアプリの管理が出来る

droidWall を使う



・マーケットからダウンロードする
・インストールする
・superuserの警告が出るので、rootを許可する
・後はアプリ毎の設定をするだけ



2010年12月26日 14:11 | Tomneko Labo | tomneko |


DB2を触ってみる

仕事でDB2に対応しなくてはならなくなったので、DB2 Express-C 9.5 for Windowsを手元のPCに入れて触ってみています。
いろいろと、勝手が違うので戸惑うところがありますね。
CREATE DATABASE 文で、どこにデータベースを作成するか指定するわけですが、DB2では以下のルールで作成場所が決定されます。
<your_database_path>/<your_instance>/<database_name>
なので、デフォルトのインスタンス名のディレクトリ DB2がC:\直下に作成されていて、そこにシステムカタログなどが配置されているわけです。
ところが、GUIのコントロールセンターというのが付属していて、これを使用した場合にデータベースのパスがGUIで直感的に設定出来てしまうわけです。いきおい、C:\DB2\NODE0000\TEST とかしたくなってしまうし、実際にそうしてみると、「パスが存在しません」と怒られてしまいます。
考えてみれば上のルールに則って構成すると、 C:\DB2\NODE0000\DB2\NODE0000\TEST というディレクトリになってしまうわけで、そんなディレクトリは用意していないのでエラーになるわけです。
知らない僕がいけないんですが、せめてデフォルトパスについては、重複していたらそこを削って解釈してくれるといいんですけどね・・・。その方が「直感的」じゃないですか? IBMさん、どうでしょうか。

2009年03月02日 15:50 | Tomneko Labo | tomneko |


Apache + PHP3 Webサーバーとデータベースの連携を試みる

[1] Apache + PHP3 Webサーバーとデータベースの連携を試みる


ApacheとPHP3をWindows上で動作させる


 WWWとデータベースの連携はWeb上での商業活動などで必ず必要になる技術です。山のようなソリューションが提示されていますが、今回はApache+PHP3にチャレンジしてみました。本当はLinuxなどで行った方がいいのでしょうが、うちにはPCが2台しかない上に片方はカミさんに占拠されているので、1台で全部行わなければなりません。Linux上ですべての作業を行うこともできるでしょうが、いかんせん慣れという問題があります。Linuxには秀丸(何でもこれで書いています)もありませんし、Linux自体の設定も危うい物があります。そこでちょっと変則的ではありますが、Linux上で動作するであろう環境をWindows上に構築するところから始めようと思います。


 まず、目標を次のように立てました。WWWサーバーとしてインターネット上でもっとも広く使用されているApacheを動作させます。これに、データベースと接続してブラウザーに表示させるスクリプト言語としてPHP3を組み込みます。UNIX版のApacheの場合は、PHP3をモジュールとして組み込んで使用すると、いちいちプロセスをforkしないのでサーバーの負荷が軽減されると言う利点もあるようです。Windows版のApacheの場合はマルチスレッドで動作しているので、新たにプロセスが起動すると言うことはないでしょう。


 このへんは不明ですが、とりあえずテスト環境としては問題ないでしょう。そして、これらと組み合わせて使用するデータベースシステムとして、InterBaseに白羽の矢を立てました。InterBaseは開発者ライセンスが、Delphiのプロフェッショナル版に附属しているので、試験運用をすることが出来ます。また、本格的に稼働させる時点でもInterBase4.0 for Linuxがフリーソフトとして配布されています。


 現在、Apache の最新版は、1.3.9。PHP3 の方は、3.0.11 が最新版です。これらをWindows上で動作させてみます。両方ともWIN32版です。


 入手先は以下の通りです。


 Apache 1.3.9は Apache 公式サイトまたは、JApache 日本のApacheサイト


 PHP 3.0.11は PHP 公式サイトまたは、PHP 日本の公式サイト


 ついでに、PHPの日本語マニュアルもダウンロードしておきましょう。これは、PHP日本語ページから手に入ります。


Apache のインストール


 まず、Apacheをインストールします。ダウンロードしてきた、apache_1_3_9_win32.exeを実行すると、通常のWindowsアプリケーションと同様にインストーラーの指示があるので、それに従って進めます。気をつけるのは、デフォルトのインストールディレクトリが c:\program files\apache group\apache となっているので、これを出来れば c:\apache か、c:\bin\apache などに変更しておいた方がよいでしょう。別段、動作に支障はありませんが、conf ファイルの編集などが面倒になるので私は c:\bin\apache にインストールしておきました。ちなみに、PHPのマニュアルなどでは c:\apache にインストールしてあるとして、説明がされています。


PHP3 のインストール


 つぎに、PHP3 をインストールします。ダウンロードしたphp-3.0.11-win32.zip を c:\php3 または、c:\bin\php3 などに解凍します。マニュアル中では、c:\php3 にインストールしてあるとして、説明されています。私は、ルートディレクトリが混雑するといやなので、c:\bin\php3にインストールしました。


 つぎに、php3ディレクトリにある php3.ini-dist を c:\windows ディレクトリ(windowsがインストールされているディレクトリで、win98などの場合もありますね)にコピーして、php3.iniにリネームします。マニュアルでは php3_dist.iniをどうのこうのと書いてあります、誤植のようです。今後のバージョンアップで別の名前になるかもしれませんが、だいたいファイル名から推測できると思います。


php3.ini の編集


 さらに、php3.iniファイルを編集します。ノートパッドなどのテキストエディタで開いてください。上から100行目ちょっとの所に、Paths and Directories というセクションがあり、その下に extension_dir = という所があります。ここに php3 をインストールしたディレクトリを記述します。私の場合は、extension_dir = c:\bin\php3 としました。


 それから、その少し上にある、doc_root = という所に、Webサーバーのドキュメントルートを記述します。Apache の場合は、Apacheをインストールしたディレクトリの下に htdocs というディレクトリが作られているので、そこを指定します。わたしの場合は、doc_root = c:\bin\apache\htdocs となります。


 最後に、PHP3 のモジュールを選択します。extension=php3_*.dll という行がずらっと並んでいるところがあるので、必要なdllのコメント(;のことです。)を外します。


 しかし、ここで問題発生。目的とするInterBase用のモジュールがないのです。うーん、どうしてだろうか? Windows用Apacheにはないのかしら? しょうがないので、とりあえずここはそのままにしておいて、Apache に PHP3 を使うための設定を行います。


httpd.conf の編集


 Apacheをインストールしたディレクトリの下に conf というディレクトリが作られています。Apache の設定ファイルはここにすべてあります。httpd.conf をエディタで開いて編集します。上から460行目あたりに、ScriptAlias という記述があります。ScriptAlias /cgi-bin/ "C:/bin/Apache/cgi-bin/"というのがそれです。""の中のディレクトリの指定はApacheをインストールしたディレクトリによって変わってきます。あれっと思うかもしれませんが、この httpd.conf の中では、ディレクトリを指定する際に使用する\はすべて/に置き換えてください。「これは仕様です」。


 ここに、次の行を付け加えてください。


ScriptAlias /php3/ "C:/bin/php3/"


 上の cgi-bin の行をコピーして書き換えればスペルミスもさけられます。当然、""の中は、php3をインストールしたディレクトリによって変わってきます。


 それから、590行目くらいに、AddType application/x-tar .tgz という行があります。ここに、つぎの行を付け加えてください。


 AddType application/x-httpd-php3 .phtml
 AddType application/x-httpd-php3 .php3
 AddType application/x-httpd-php3-source .phps

 .phtml と .phps の行はコメントアウトされているのを外すだけになっていました。.php3の行はコピーして書き換えてください。


 最後に、640行目くらいに Action を記述するところがあります。


# Action lets you define media types that will execute a script whenever
# a matching file is called. This eliminates the need for repeated URL
# pathnames for oft-used CGI file processors.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location

 このコメントの下に以下の行を付け加えてください。


Action application/x-httpd-php3 "/php3/php.exe"


 ""の中は、ディレクトリではありません。先に指定した、ScriptAlias で指定したパスを使うよと言うことなので、このまま書けばOKです。


Apache の起動


 それでは、とりあえずPHP3が動くことを確かめましょう。次の内容のテキストファイルを php_test.php3 という名前で、Apache をインストールしたディレクトリの下にある htdocs ディレクトリに保存してください。


-----------------------------------------------------------
< HTML >
< HEAD >
< TITLE >PHP3のテストファイル < /TITLE >
< /HEAD >
< BODY BGCOLOR="#a3f1f8" >
< script language="php" >
echo ("some editors (like FrontPage) don't
like processing instructions");
< /script >

< /BODY >
< /HTML >
-----------------------------------------------------------

 次に、htdocs にある index.html ファイルをエディタで開いて編集します。このファイルは、Apacheに接続したときにデフォルトで開かれます。一番下の方を書き換えて次のようにします。


< P >
The Apache
< A
HREF="manual/index.html"
> documentation< /A >
has been included with this distribution.
< /P >
----------------------ここから追加-------------------------
< P >
PHP3 Test
< A
HREF="php_test.php3"
> PHP3 Test HTML< /A >
< /P >
----------------------ここまで-----------------------------
< P >
The Webmaster of this site is free to use the image below on
an Apache-powered Web server. Thanks for using Apache!
< /P >
< DIV ALIGN="CENTER" >
< IMG SRC="apache_pb.gif" ALT="" >
< /DIV >
< /BODY >
< /HTML >

 さて、Apacheを起動してみましょう。とりあえず、Apache.exe を何も考えずにダブルクリックしてみましょう。DOS窓が起動して次のようなメッセージが表示されます。


Apache/1.3.9 (Win32) running...


 これで、Apache が起動しました。Netscape(わたしの趣味でNetscapeですが、IEでも構いません)で接続します。URLを入力する欄に、http://127.0.0.1/と入力してリターンキーを押します。


It Worked! The Apache Web Server is Installed on this Web Site!


 上のように表示されたらOKです。うまくいかないときは、もう一度設定を見直してみてください。また、ネットワーク関係の設定をしっかり行っていないと、当然うまく動きません。TCP/IPプロトコルがインストールされているか確認してください。インターネットに接続できているなら、おそらく問題は別の所にあると思われます。


 Apache に接続できたら、PHP3 Test HTML というリンクをクリックしてください。


some editors (like FrontPage) don't like processing instructions Hi, I'm a PHP script!


 上のように表示されましたか? これで、とりあえず Apache + PHP3 が正しく動いていることが確認できました。


PHP3でデータベースに接続する


 さて、Apache + PHP3 が稼働したら、次はいよいよ本題のデータベースへの接続です。しかし、PHP3 のWin32版ではどうもInterBaseはサポートされていないようです。インターネット上の情報をいろいろあたってみても、UNIX版でもまだ暫定的なサポートしかされていないようです。そこで、とりあえずODBC用のモジュールを利用可能にして、Access2000で接続テストを行ってみました。


 windowsディレクトリにある、php3.iniファイルをエディタで開いて、次の行の;を取って、コメントを外します。


;extension=php3_odbc.dll


 これで、PHP3の準備はOKです。次に、Access2000で簡単なデータベースを作ってみます。からのデータベースを作成し、テーブルを新規作成します、テーブル名はT_Authorとします。テーブルの構造は以下の通りです。SQLで書いてありますが、Accessですからビジュアルテーブルデザイナーで作成しました。


//作家データのテーブル
Create Table T_Author
(Author_No Integer, //主キー用通しナンバー
Family_Name VarChar(128), //著者姓(ex.宮澤)
First_Name VarChar(128), //著者名(ex.賢治)
Family_Yomi VarChar(128), //姓の読み(ex.みやざわ)
First_Name VarChar(128), //名の読み(ex.けんじ)
BirthDay Char(10), //生年(ex.1896 or 1896.08.27)
DeadDay Char(10), //没年(ex.1933 or 1933.09.21)
PRIMARY KEY(Author_No)
)

 テーブルを作成したら、いったん保存してから、データを一件入力します。とりあえず、サンプルなので何でもいいのですが、例のとおり宮澤賢治を入力してみました。データを入力したら、Accessを終了します。データベース名はlibrary.mdbとしておきます。


 次に、ODBCの設定を行います。これには、コントロールパネルの「ODBCデータソース(32ビット)」を使用します。ユーザーDSNでないとうまく動かないと、どこかで見かけたので、とりあえずユーザーDSNの新規作成を行います。「追加」ボタンを押して、Microsoft Access Driver(*.mdb)を選択して「完了」ボタンを押します。データソース名を「LIBRARY」にして、データベースを「選択」ボタンを使って、先ほど作成したlibrary.mdbに設定します。「OK」ボタンを押せば、準備は完了です。


 それでは、まえに作成した、Apacheのインストールディレクトリの下にあるhtdocsディレクトリのphp_test.php3ファイルを書き換えて、データベースにアクセスしてみます。以下のように書き換えてください。スクリプトの意味は、odbc_connect()でデータベースに接続します。いまは空になっていますが、2番目と3番目のパラメータはユーザー名とパスワードです。データベースに接続したら、odbc_exec()でSQLを発行します。その結果セットからデータを取得するのが、odbc_result()になります。最後に、odbc_close()で接続を閉じています。わかりにくいのは、文字列の接続演算子が"."であるということぐらいでしょうか。また、変数は整数と倍精度浮動小数点と文字列の三種類を扱えますが、整数型を文字列と結合すると文字列として扱ってくれるなど、バリアント型のような使い方が出来るようです。


-----------------------------------------------------------
< HTML >
< HEAD >
< TITLE >PHP3のテストファイル< /TITLE >
< /HEAD >
< BODY BGCOLOR="#a3f1f8" >
< script language="php" >
$cn = odbc_connect("LIBRARY","","",SQL_CUR_DEFAULT);

$qry_id = odbc_exec($cn,"SELECT Family_Name From T_Author");

$family_name = odbc_result($qry_id,"Family_Name");

echo ("< H2 >< I >名前は" . $family_name . "< /I >< /H2 >");

odbc_close($cn);
< /script >
< /BODY >
< /HTML >
-----------------------------------------------------------

 このファイルを保存して、Apacheを起動し、ブラウザーからhttp://127.0.0.1/に接続して、PHP3 Test HTML というリンクをクリックしてください。画面に、「名前は宮澤」と表示されればOKです。ブラウザーから、ページのソースを見てみると以下のようになっています。


-----------------------------------------------------------
< HTML >
< HEAD >
< TITLE >PHP3のテストファイル< /TITLE >
< /HEAD >
< BODY BGCOLOR="#a3f1f8" >
ODBC接続ID = 1< H2 >< I >名前は宮澤< /I >< /H2 >
< /BODY >
< /HTML >
-----------------------------------------------------------

 きちんとスクリプトが解釈されて、HTMLに変換されているのがわかります。ここまでで、Apache + PHP3 + ODBCデータベースの接続に成功しました。


※補足


  •  Apacheの起動にはスタートメニューから[Apache Web Server]-[Start Apache]をクリックして起動するのが正しいようです。また、Apacheを停止するにはコマンドプロンプトからApacheのディレクトリに移動して Apache -k shutdown を実行します。面倒なので、[Stop Apache]というメニュー項目を作っておくといいでしょう。


  •  この原稿を書いたのは去年の暮れだったのですが、この間にPHP3は3.0.14にバージョンアップしています。


    To Be Continued (^^;;;

    2000年01月17日 23:00 | Tomneko Labo | tomneko |