- 締切済み
Ruby/DBIが上手く動きません。。
http://code.nanigac.com/source/wiki/view/496 上記のサイトさんを参考にRubyからMySQLのデータベースにアクセスするプログラムを作りました。 コマンドプロンプト上では動作するのですが、同パソコンでブラウザから開くとエラーをはきます。 どなたか理由を教えていただけないでしょうか? 環境 WindowsXP Professional Apache 2.0.63 ruby 1.8.6 dbi-0.2.0 MySQL 5.0.51a [ソースコード] #!/user/local/bin/ruby print "Content-type: text/html\n\n" def error_cgi() print "*** CGI Error List ***<br />" print "#{CGI.escapeHTML($!.inspect)}<br />" $@.each {|x| print CGI.escapeHTML(x), "<br />"} end begin require "dbi" require "cgi" print <<EOF <html> <head> <title>データベース</title> </head> <body> EOF # MySQLサーバへ接続 dbh = DBI.connect("dbi:Mysql:test:localhost", "testuser", "testpass") # サーババージョンの文字列を取得して、表示する。 row = dbh.select_one("SELECT VERSION()") print "Server version: #{row[0]}\n" print <<EOF </body> </html> EOF rescue DBI::DatabaseError => e print "An error occurred" print "Error code: #{e.err}" print "Error message: #{e.errstr}" rescue error_cgi() ensure # サーバから切断 dbh.disconnect if dbh end [プロンプト] Content-type: text/html <html> <head> <title>データベース</title> </head> <body> Server version: 5.0.51a-community-nt </body> </html> [ブラウザでのエラー] *** CGI Error List *** #<DBI::InterfaceError: Could not load driver (no such file to load -- C:/user/local/lib/ruby/site_ruby/1.8/dbd/Mysql)> C:/user/local/lib/ruby/site_ruby/1.8/dbi.rb:368:in `load_driver' C:/user/local/lib/ruby/site_ruby/1.8/dbi.rb:233:in `_get_full_driver' C:/user/local/lib/ruby/site_ruby/1.8/dbi.rb:219:in `connect' D:/Development/NotePC WEB/public_html/cgi-bin/database.rb:24
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10359)
エラーメッセージの通りでしょう。 MySQLのライブラリにPATHが通ってないので、load出来ない。 コマンドプロンプトで動作すると言うことは、何らかの手段でPATHに追加したものと思いますが、 システムのプロパティから、システム環境変数のPATHに追加しましたか?