忍者ブログ
開発やらlinuxについてやったこと、ひっかかったことのメモ
[1] [2] [3] [4] [5] [6] [7] [8] [9]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

erb.cgiはまだうまくいかないので,とりあえず,ERBを勉強することに.

erb.rb を作成.以下ソース

#!C:\Ruby\bin\ruby
require 'erb'
hoge = ERB.new(open("読み込みたいファイル名").read).result
open("書き出すファイル名","w") {
|f| f.write(hoge)
}

これでルビーの埋め込みコードが書かれたファイルを
ERBで変換して出力してくれました.

あとは,これをどうやってWEBに応用するのか...

CGIやら.htaccessやらそこら辺の知識が全くないので苦戦中.
PR
二つのファイル編集します.

まず,postgresql.conf

listen_address ='localhost'
                     ↓
listen_address ='*'

これですべてのアドレスからの受付準備


次にpg_hba.conf
         host        all      all    0.0.0.0/0     trust
を最終行に追加,または
host        all      all    LAN内アドレス   255.255.255.0   trust
で,LAN内からのみデータベースをいじれるようにできる.

この設定でもしクライアントからいじれなかったら,ファイアウォールとかでポート5432を解放して
あげる必要があるかも.
rubyでpostgresを使う.

いろいろ躓いたのでやり方メモ

まず,コマンドプロンプトから,
>gem install postgres-pr

Successfully installed  postgres-pr-0.5.0
1 gem installed

これで,インストールはおk
以下テスト用ソースコード
require "postgres"
conn = PGconn.connect("localhost",5432,"","","dbName","usrName","password")
res = conn.exec("select * from ****")
puts res

これをdb.rbとして保存.コマンドプロンプトから
>ruby db.rb
#<PGresult:*******>

と出力されればおそらく成功.

つまづいた点は,最初ruby-postgresという拡張モジュールをインストールしたことから.

正常にインストールできたから上のソースコードを実行すると
libpq.dllが見つかりませんエラー,環境変数PATHにぽすぐれbinをあててもエラー

調べてみたらどうやらruby-postgresはpostgres8.*シリーズに対応していないらしいです.
そこで
gem uninstall ruby-postgresでこのモジュールを捨てて,postgres-prをインストールしたのでした.



rubyをhtmlの中にコードを埋め込む形で使用したいので、

erb.cgiというのをダウンロードしたんですが、設定が上手くいかず困っています。

とりあえず、ドキュメントルートに.htaccessファイルを作成し、以下を記述

Options ExecCGI
AddType text/html cgi
AddHandler cgi-script cgi

AddHandler rubypage .rhtml
Action rubypage /cgi-bin/erb.cgi

前半部はcgiの使用を可にする記述で、後半部分はerb.cgiを使う設定
もしかしたらここが間違っているのかもしれないが、いまだ解決ページ見当たらず。

次にcgi-bin/にerb.cgiを設置。
erb.cgiはこちらからダウンロード

これでルートでサンプルとしてerbtest.rhtmlを作って以下のソースを記述

<html>
<head>
</head>
<body>
<%="Hello World!"%>
</body>
</html>

だめです。なぜだ。。。


解決しました.他にもいっぱいやらなきゃいけないことあったのに
アホすぎて飛ばしてた.

以下参考ページ
ここ(英語) は英語なので,読みづらかった.

解決方法は以下にメモ
まず,cgi-scriptをapacheで動作できる環境にする.
httpd.conf修正

#LoadModule cgi_module libexec/httpd/mod_cgi.so
↑コメントはずします.

    # To use CGI scripts:
    #
    AddHandler cgi-script .cgi
  ↑コメントはずします.


さらに

   #ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
    ScriptAlias /cgi-bin/ "C:/www/cgi-bin/"
これで,www/cgi-bin/にCGIをおいても実行できる

ここでひとまず,test.cgi作ってみる↓
#!C:\Ruby\bin\ruby
puts "Content-type: text/html\n\n"
puts "CGI script handling is set up and working fine!!!!!!"

これをC:/www/cgi-bin/において
http://localhost/cgi-bin/test.cgi を実

「CGI script handling is set up and working fine!!!!!!」

この文字が出ればおk

次は.htaccessの上書き処理の許可.

またhttpd.conf修正
AllowOverride None → All に変更

ここまでやってアパッチ再起動して,
.rhtmlをひらいてみたらできました!!

卒業研究でシリアル通信プログラムも作ってるので一応メモ
Javaでシリアル通信プログラムを作るには,JavaCommunicationsAPIというライブラリが必要です.
いろいろ設定が必要なので,以下やり方.
  1. JavaCommunicationsAPIをダウンロード,検索すればすぐ引っ掛かります.現在Ver3.0
  2. unzip で解凍
  3. commapi/lib/のlibLinuxSerialParallel.soというファイルを/usr/libにコピー
  4. commapi/jar/のcomm.jarを/usr/java/jdk/jre/lib/ext/にコピー
  5. commapi/docs/のjavax.comm.propertiesを/usr/java/jdk/jre/lib/にコピー
  6. 付属のサンプルを Java SerialDemoで実行して,正常に起動すればおk
  7. 自分でプログラム作るときのimport文は javax.comm.*;です.
ちなみにWindows版JavaCommunicationsAPIは現在配布されていません.
なので,Windowsでやりたかったら,RXTXというライブラリを使うこと.
なに,準拠したオープンソースなのでimport文が変わるだけであとは普通につかえます .
import文は→gnu.io.*;です.

バーコードリーダを使って文字列を取得してコンソール上に表示したいのだけれど,8文字ずつ区切って表示されてしまいます(2回SerialEventが呼ばれてる).
Windowsでは問題なくいってたのに.どうしてだろう..

inputStream.read()で返された値が-1になるまで受信した値をStringBufferに格納してます.
-1が返されるのは,ストリームの終わりに達したときのはずなんだけど,,

1回の読み込みで2回ストリームが作られてるということか??


忍者ブログ [PR]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[06/12 ziggy]
最新TB
プロフィール
HN:
poti
性別:
非公開
バーコード
ブログ内検索
P R
FX NEWS

-外国為替-