Ruby的書也看了一陣子, 也該開始用用看囉, 剛好最近在寫一個HTTP client, 需要一個Web server做測試.
所以就試著自己架一個Web server, Apache + Ruby (CGI).
如果讓Apache支援Ruby寫出來的CGI呢? 基本上需要安裝mod_ruby將Apache與Ruby結合在一起.
下面是在Ubuntu 7.04的安裝步驟.
1. 安裝Apache 2 (目前版本是2.2.3), Ruby (目前的版本是ruby 1.8.5) 和mod_ruby, 因為我們是安裝Apache2, 所以安裝libapache2-mod-ruby
apt-get install apache2
apt-get install ruby
apt-get install libapache2-mod-ruby
2. 設定Apache, 請編輯/etc/apache2/httpd.conf
安裝mod-ruby時已經加入的mod_ruby載入的設定, 所以不需額外設定.
/etc/apache2/mods-enable/ruby.load
/etc/apache2/mods-available/ruby.load
設定ruby CGI 目錄 (/var/www/ruby)和副檔名(*.rbx)
# ClearModuleList
# AddModule mod_ruby.c
<IfModule mod_ruby.c>
RubyRequire apache/ruby-run
# Execute files under /ruby as Ruby scripts
<Location /ruby>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Location>
# Execute *.rbx files as Ruby scripts
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
</IfModule>
3. 重新啟動Apaeche
sudo /etc/init.d/apache2 restart
4. 再來一個簡單的測試. 當然第一個CGI就是送出"Hello World" 到browser上面囉.
sudo mkdir /var/www/ruby
sudo vi hello.rbx
hello.rbx:
#!/usr/bin/ruby
require 'cgi'
# Create a cgi object, with HTML 4 generation methods.
cgi = CGI.new('html4')
# Ask the cgi object to send some text out to the browser.
cgi.out {
cgi.html {
cgi.body {
cgi.h1 { 'Hello World!' }
}
}
}
5. 一切都OK之後, 連到http://localhost/ruby/hello.rbx, 你就可以看到"Hello World!"
沒有留言:
張貼留言