「m_apache」の編集履歴(バックアップ)一覧はこちら

m_apache」(2010/02/09 (火) 09:05:27) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

MGWSIで Apache から GT.M を使えるようにしたときの作業メモです。 MGWSI導入については → [[こちら>P.011]] - GT.M / MUMPS向けの通信プロセス は準備済みとします。 -- 仲介用デーモンプロセスは使わない設定にします -- 使うようにもできるけど、使わない方がパフォーマンスでるらしいので * 最初の一歩 - ~/mgwsi/bin/m_apache22.so を /usr/lib/apache2/modules/ 配下へコピー - /etc/apache2/mods-avalable/ 配下へ以下の2ファイルを作成 mgwsi.load LoadModule m_apache_module /usr/lib/apache2/modules/m_apache22.so mgwsi.conf SetEnv MGWSI_PORT 7041 - ここで a2enmod で mgwsi を有効にするのが流儀のようですが… -- めんどうなので、手作業で mods-enable 配下にシンボリックリンクをはりました - Apache を再起動 - 以下のような HTMLファィルを作成し <html> <head> <title>First Step</title> </head> <body> <form method="POST" action="test.mgwsi?xxx=yyy1&xxx=yyy2"> <input type="text" name ="a" value="b" /> <br /> <br /> <input type="text" name ="c" value="d" /> <br /> <br /> <input type="submit" name="go" value="SUBMIT" /> </form> </body> </html> - SUBMIT ボタンをクリックすると送信した情報がブラウザに表示されます -- 拡張子 .mgwsi をもつページをリクエストした場合は、内容が GT.M に送り出されます -- GT.M の受け側は(省略されているので)WEB^%ZMGWSIS ルーチンが想定されます --- ZMGWSI.RO を登録した時に作成される以下の部分が相当します CGI … サーバの情報 DATA … GET なり POST なりで送った情報 WEB(CGI,DATA) N REQ,X,Y S REQ="" S REQ=REQ_"HTTP/1.1 200 OK"_$C(13,10) S REQ=REQ_"Content-type: text/plain"_$C(13,10) S REQ=REQ_"Connection: close"_$C(13,10) S REQ=REQ_$C(13,10) W REQ W $G(CGI) S X="" F S X=$O(CGI(X)) Q:X="" W X_"="_$G(CGI(X))_$C(13,10) W $C(13,10) S X="" F S X=$O(DATA(X)) Q:X="" S Y="" F S Y=$O(DATA(X,Y)) Q:Y="" W X_":"_Y_"="_$G(DATA(X,Y))_$C(13,10) Q * GT.M ルーチンを自作 - TESTDSP1.m を作成&コンパイル ※分かりやすいように、命令は省略せずに書きました。 TESTDSP1(CGI,DATA) NEW REQ SET REQ="" SET REQ=REQ_"HTTP/1.1 200 OK"_$CHAR(13,10) SET REQ=REQ_"Content-type: text/plain"_$CHAR(13,10) SET REQ=REQ_"Connection: close"_$CHAR(13,10) SET REQ=REQ_$CHAR(13,10) WRITE REQ WRITE ^animal($GET(DATA("key",1)))_$CHAR(13,10) QUIT - mgwsi.conf を変更&Apache を再起動 SetEnv MGWSI_PORT 7041 SetEnv MGWSI_M_FUNCTION ^TESTDSP1 - 以下のような HTMLファィルを作成し、ブラウザから SUBMIT をクリックするとブラウザに鳴き声が表示されます <html> <head> <title>My Routine</title> </head> <body> <form method="POST" action="test.mgwsi"> <select name="key"> <option value="dog">DOG <option value="cat">CAT </select><br /> <br /> <input type="submit" name="go" value="SUBMIT" /> </form> </body> </html> - 拡張子が .mgwsi の場合は無条件に(指定された)GT.M ルーチンに渡されます - 厳密にいうと .ewd も同様の動きとなります。 - もし拡張子より前の部分になにか意味を持たせたい場合は、GT.M ルーチンの方で実装することになります * XMLHttpRequest を使う - submit をかけずに、いわゆる Ajax っぽく使う場合の説明です。 - TESTDSP1.m を変更&コンパイル ※改行をつけなくしただけです TESTDSP1(CGI,DATA) NEW REQ SET REQ="" SET REQ=REQ_"HTTP/1.1 200 OK"_$CHAR(13,10) SET REQ=REQ_"Content-type: text/plain"_$CHAR(13,10) SET REQ=REQ_"Connection: close"_$CHAR(13,10) SET REQ=REQ_$CHAR(13,10) WRITE REQ WRITE ^animal($GET(DATA("key",1))) QUIT - ~/mgwsi/java/m_client.js をWEBディレクトリへコピー -- 自前で書ける人は自作でもいいのですが、せっかくあるんで使ってみました - 以下のような HTMLファィルを作成し、ブラウザから GET VOICE をクリックするとテキストボックスに鳴き声が表示されます <html> <head> <title>XMLHttpRequest</title> <script type="text/javascript" src="m_client.js"></script> <script type="text/javascript"> <!-- function get_val() { var k = document.myform.key; var r = document.myform.res; var d ='test.mgwsi?key=' + k.options[k.selectedIndex].value; var res = server_proc(d); r.value = res; } --> </script> </head> <body> <form name="myform"> <select name="key"> <option value="dog">DOG <option value="cat">CAT </select><br /> <br /> <input type="text" name ="res" value="" size=20 /> <br /> <br /> <input type="button" name="go" value="GET VOICE" onClick="get_val()" /> </form> </body> </html> ※うまくとれない時は、Apache の再起動をするといいかもしれません。
MGWSIで Apache から GT.M を使えるようにしたときの作業メモです。 MGWSI導入については → [[こちら>P.011]] - GT.M / MUMPS向けの通信プロセス は準備済みとします。 -- 仲介用デーモンプロセスは使わない設定にします -- 使うようにもできるけど、使わない方がパフォーマンスでるらしいので * 最初の一歩 - ~/mgwsi/bin/m_apache22.so を /usr/lib/apache2/modules/ 配下へコピー - /etc/apache2/mods-avalable/ 配下へ以下の2ファイルを作成 mgwsi.load LoadModule m_apache_module /usr/lib/apache2/modules/m_apache22.so mgwsi.conf SetEnv MGWSI_PORT 7041 - ここで a2enmod で mgwsi を有効にするのが流儀のようですが… -- めんどうなので、手作業で mods-enable 配下にシンボリックリンクをはりました - Apache を再起動 - 以下のような HTMLファィルを作成し <html> <head> <title>First Step</title> </head> <body> <form method="POST" action="test.mgwsi?xxx=yyy1&xxx=yyy2"> <input type="text" name ="a" value="b" /> <br /> <br /> <input type="text" name ="c" value="d" /> <br /> <br /> <input type="submit" name="go" value="SUBMIT" /> </form> </body> </html> - SUBMIT ボタンをクリックすると送信した情報がブラウザに表示されます -- 拡張子 .mgwsi をもつページをリクエストした場合は、内容が GT.M に送り出されます -- GT.M の受け側は(省略されているので)WEB^%ZMGWSIS ルーチンが想定されます --- ZMGWSI.RO を登録した時に作成される以下の部分が相当します CGI … サーバの情報 DATA … GET なり POST なりで送った情報 WEB(CGI,DATA) N REQ,X,Y S REQ="" S REQ=REQ_"HTTP/1.1 200 OK"_$C(13,10) S REQ=REQ_"Content-type: text/plain"_$C(13,10) S REQ=REQ_"Connection: close"_$C(13,10) S REQ=REQ_$C(13,10) W REQ W $G(CGI) S X="" F S X=$O(CGI(X)) Q:X="" W X_"="_$G(CGI(X))_$C(13,10) W $C(13,10) S X="" F S X=$O(DATA(X)) Q:X="" S Y="" F S Y=$O(DATA(X,Y)) Q:Y="" W X_":"_Y_"="_$G(DATA(X,Y))_$C(13,10) Q * GT.M ルーチンを自作 - TESTDSP1.m を作成&コンパイル ※分かりやすいように、命令は省略せずに書きました。 TESTDSP1(CGI,DATA) NEW REQ SET REQ="" SET REQ=REQ_"HTTP/1.1 200 OK"_$CHAR(13,10) SET REQ=REQ_"Content-type: text/plain"_$CHAR(13,10) SET REQ=REQ_"Connection: close"_$CHAR(13,10) SET REQ=REQ_$CHAR(13,10) WRITE REQ WRITE ^animal($GET(DATA("key",1)))_$CHAR(13,10) QUIT - mgwsi.conf を変更&Apache を再起動 SetEnv MGWSI_PORT 7041 SetEnv MGWSI_M_FUNCTION ^TESTDSP1 - 以下のような HTMLファィルを作成し、ブラウザから SUBMIT をクリックするとブラウザに鳴き声が表示されます <html> <head> <title>My Routine</title> </head> <body> <form method="POST" action="test.mgwsi"> <select name="key"> <option value="dog">DOG <option value="cat">CAT </select><br /> <br /> <input type="submit" name="go" value="SUBMIT" /> </form> </body> </html> - 拡張子が .mgwsi の場合は無条件に(指定された)GT.M ルーチンに渡されます -- ちなみに .ewd も同様の動きとなります。 -- 別の拡張子に対応するよう指定することもできるようです。 - もし拡張子より前の部分になにか意味を持たせたい場合は、GT.M ルーチンの方で実装することになります * XMLHttpRequest を使う - submit をかけずに、いわゆる Ajax っぽく使う場合の説明です。 - TESTDSP1.m を変更&コンパイル ※改行をつけなくしただけです TESTDSP1(CGI,DATA) NEW REQ SET REQ="" SET REQ=REQ_"HTTP/1.1 200 OK"_$CHAR(13,10) SET REQ=REQ_"Content-type: text/plain"_$CHAR(13,10) SET REQ=REQ_"Connection: close"_$CHAR(13,10) SET REQ=REQ_$CHAR(13,10) WRITE REQ WRITE ^animal($GET(DATA("key",1))) QUIT - ~/mgwsi/java/m_client.js をWEBディレクトリへコピー -- 自前で書ける人は自作でもいいのですが、せっかくあるんで使ってみました - 以下のような HTMLファィルを作成し、ブラウザから GET VOICE をクリックするとテキストボックスに鳴き声が表示されます <html> <head> <title>XMLHttpRequest</title> <script type="text/javascript" src="m_client.js"></script> <script type="text/javascript"> <!-- function get_val() { var k = document.myform.key; var r = document.myform.res; var d ='test.mgwsi?key=' + k.options[k.selectedIndex].value; var res = server_proc(d); r.value = res; } --> </script> </head> <body> <form name="myform"> <select name="key"> <option value="dog">DOG <option value="cat">CAT </select><br /> <br /> <input type="text" name ="res" value="" size=20 /> <br /> <br /> <input type="button" name="go" value="GET VOICE" onClick="get_val()" /> </form> </body> </html> ※うまくとれない時は、Apache の再起動をするといいかもしれません。

表示オプション

横に並べて表示:
変化行の前後のみ表示: