Webの開発環境を構築する
最終回 Rubyの設定
ここまでWebサーバで使われる言語としてPerlやPHP等の設定を行いました。
今回は導入例は、まだまだ少ないですが国産の言語でありオブジェクト指向をスクリプトに持ち込んだRubyの実行環境をWindowsに設定していきます。
安定した言語と環境もさる事ながら最新の言語に触れてみる事も技術者としては必要な事です。
という事で今回はWindowsでRubyの実行環境を構築していきます。
あくまでも開発用の環境の構築になりますので、自宅サーバ用途等のセキュリティの対策は今回は対象としていません。
以上の事を踏まえた上で記事を読み進めて下さい。
それでは、早速、本題に入りましょう。
Rubyの環境構築
- Rubyのサイト
- Windows版のダウンロード
DownLoad のページhttp://www.ruby-lang.org/ja/downloads/にアクセスします。
ダウンロードのページよりRuby-mswin32を選択して下さい。
Ruby-mswin32(ja)のサイトに移動し安定版snapshotより現時点での最新版のruby-1.8.5-20061204-i386-mswin32.zipをダウンロードして下さい。
- Rubyのインストール
ダウンロードしたruby-1.8.5-20061204-i386-mswin32.zipをディレクトリ付きで解凍し、
d:\usr\ruby-1.8.5以下にコピーします。
- RubyからMySQLの操作が出来る様にする拡張パッケージのインストール
Ruby/MySQLのサイト(http://www.tmtm.org/ruby/mysql/)にアクセスします。
サイトより現時点での最新版ruby-mysql-0.2.6.tar.gzをダウンロードして下さい。
ダウンロードしたruby-mysql-0.2.6.tar.gzをディレクトリ付きで解凍します。
解凍したディレクトリでコマンドプロンプトを開きます。
ここでRubyからデータベースへの接続が可能かテストしてみます(省略可能)
- コマンドプロンプトから以下のコマンドを実行
ruby ./test.rb hostname user passwd
この確認をする為には、MySQLのユーザのパスワードが古いパスワード形式である必要があります。
MySQLにログインして、以下のようなSQLを発行後、確認してみて下さい。
SET PASSWORD FOR root@localhost=OLD_PASSWORD('oldroot');
d:\usr\ruby-1.8.5\bin\ruby ./test.rb localhost root rootのパスワード
正常に接続出来る事が確認出来ました。
MySQL5.0とも接続の確認をしてみます。
当該のプログラムでMySQL接続時のPORTを指定するためには環境変数MYSQL_TCP_PORTの設定が必要になる為、コマンドラインから以下のコマンドを実行します。
SET MYSQL_TCP_PORT=3307
その後、テスト用のコマンドを実行します。
d:\usr\ruby-1.8.5\bin\ruby ./test.rb localhost root rootのパスワード
現在のバージョンでは接続出来ない事が確認出来ました。
(今後、接続可能なバージョンも公開されていくと思いますのでRuby/MySQLのサイトをチェックしてみて下さい)
Ruby/MySQLのインストールをコマンドラインから以下のコマンドにて実行します。
d:\usr\ruby-1.8.5\bin\ruby ./install.rb
- RubyをApacheから使用可能とする為の拡張モジュールをインストール
- Rubyの動作確認
Apacheのhtdocsの下に作成したtestディレクトリのに以下の様なファイルを作成します
ruby.rb
#!/usr/ruby-1.8.5/bin/ruby
require "cgi"
cgi = CGI.new
print cgi.header("type"=>"text/html")
print "<HTML>\n<HEAD>\n<TITLE>Ruby テスト</TITLE>\n";
print "<META HTTP-EQUIV='content-type' content='text/html; charset=shift_jis'>\n"
print "</HEAD>\n<BODY><H2>Rubyテスト</H2>\n"
print "</BODY>\n</HTML>\n"
Rubyの実行確認用のページを用意
ruby.rhtml
<HTML>
<HEAD>
<TITLE>埋め込みRubyのトップ</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<% hoge = "<H2>埋め込みRubyテスト</H2>" %>
<%=hoge%>
</BODY>
</HTML>
埋め込みRubyの実行確認用のページを用意
ruby_msql41.rb
#!/usr/ruby-1.8.5/bin/ruby
require "cgi"
cgi = CGI.new
print cgi.header("type"=>"text/html")
print "<HTML>\n<HEAD>\n<TITLE>Ruby-MySQL4.1 テスト</TITLE>\n";
print "<META HTTP-EQUIV='content-type' content='text/html; charset=shift_jis'>\n";
print "</HEAD>\n<BODY><H2>RubyからMySQL4.1への接続テスト</H2>\n";
require "mysql"
my = Mysql::new("localhost", "test", "test", "test_db")
res = my.query("UPDATE test_table SET NAME='日本語更新テスト(Ruby)' WHERE code=2")
res = my.query("SELECT * FROM test_table")
res.each do |row|
print row[0] + "/" + row[1] + "<BR>"
end
print "</BODY>\n</HTML>\n";
RubyからMySQL4.1に接続の確認をするページを用意
ruby_msql41.rhtml
<HTML>
<HEAD>
<TITLE>埋め込みRuby-MySQL4.1 テスト</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<H2>埋め込みRubyからMySQL4.1への接続テスト</H2>
<%
require "mysql"
my = Mysql::new("localhost", "test", "test", "test_db")
res = my.query("UPDATE test_table SET NAME='日本語更新テスト(Ruby)' WHERE code=2")
res = my.query("SELECT * FROM test_table")
res.each do |row|
%>
<%= row[0] %> / <%= row[1] %><BR>
<%
end
%>
</BODY>
</HTML>
埋め込みRubyからMySQL4.1に接続の確認をするページを用意
ruby_msql50.rb
#!/usr/ruby-1.8.5/bin/ruby
require "cgi"
cgi = CGI.new
print cgi.header("type"=>"text/html")
print "<HTML>\n<HEAD>\n<TITLE>Ruby-MySQL5.0 テスト</TITLE>\n";
print "<META HTTP-EQUIV='content-type' content='text/html; charset=shift_jis'>\n";
print "</HEAD>\n<BODY><H2>RubyからMySQL5.0への接続テスト</H2>\n";
require "mysql"
my = Mysql::new("localhost", "test", "test", "test_db", "3307")
res = my.query("UPDATE test_table SET NAME='日本語更新テスト(Ruby)' WHERE code=2")
res = my.query("SELECT * FROM test_table")
res.each do |row|
print row[0] + "/" + row[1] + "<BR>"
end
print "</BODY>\n</HTML>\n";
RubyからMySQL5.0に接続の確認をするページを用意
ruby_msql50.rhtml
<HTML>
<HEAD>
<TITLE>埋め込みRuby-MySQL5.0 テスト</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<H2>埋め込みRubyからMySQL5.0への接続テスト</H2>
<%
require "mysql"
my = Mysql::new("localhost", "test", "test", "test_db", "3307")
res = my.query("UPDATE test_table SET NAME='日本語更新テスト(Ruby)' WHERE code=2")
res = my.query("SELECT * FROM test_table")
res.each do |row|
%>
<%= row[0] %> / <%= row[1] %><BR>
<%
end
%>
</BODY>
</HTML>
埋め込みRubyからMySQL5.0に接続の確認をするページを用意
ブラウザからアクセスしてみましょう。
埋め込み型のRubyの動作も確認してみます
続いて、MySQL4.1と接続してみましょう
埋め込み型のRubyでもMySQL4.1との接続も確認してみます
更に、MySQL5.0と接続してみましょう
埋め込み型のRubyでもMySQL5.0との接続も確認してみます
以上でRubyの設定は完了です。
以上で一般的に使用されるWebサービスでのスクリプト系言語の環境設定はひとまず終了です。
是非これを機会にWebプログラミングの世界に触れてみて下さい。
この様な記事が技術者の第一歩として、助けになれば幸いです。
2008/05/23
Webの開発環境を構築する