昔から言語を勉強するときに最初に学ぶことは,画面に「Hello, world」と出力するプログラムを作ることです。 日本語なら「こんにちは!」と出力すればいいでしょう。 Ruby なら次のようになります。
#! /usr/bin/ruby print "こんにちは!\n";
これを hello.rb
というファイル名で作ります。
次に,このプログラムに実行許可を与えます。
chmod 755 hello.rb
hello.rb
を実行するには次のように打ち込みます。
./hello.rb
画面に「こんにちは!」と表示されることを確認して下さい。
これはまだ CGI ではありません。 これを CGI にするには,次のように直します。
#! /usr/bin/ruby print "Content-Type: text/html\n\n"; print "こんにちは!\n";
念のためこれも実行してみましょう。
./hello.rb
うまくいったなら,これをサーバに送り,ブラウザで動作を確認しましょう。
サーバによっては hello.cgi
という名前にしないと後でCGIとして実行できないことがあります。
また,サーバによってはCGIを禁止しているところがあります。
Windowsの場合は行末がCRLFの場合にうまくいきません。 行末をLFで保存するか,FTPソフトでサーバに送る際にテキストモード(アスキーモード)で送る必要があります。
理由:Windowsの行末はCRLFですがUnixの行末はLFだけです。
このため,パソコンで頭に #! /usr/bin/ruby
と書いたつもりでもUnixからは #! /usr/bin/ruby
CR
と見えてしまい,/usr/bin/ruby
CR
というコマンドはないというエラーになってしまうわけです。
Windowsのメモ帳でUTF-8で保存すると,BOMが付くのでエラーになります。 まともなテキストエディタでUTF-8Nで保存しましょう。
print "Content-type: text/html\n\n";
を次のようにして文字コードを指定しましょう。
print "Content-type: text/html; charset=SHIFT_JIS\n\n"; print "Content-type: text/html; charset=EUC-JP\n\n"; print "Content-type: text/html; charset=UTF-8\n\n";
printは行末を付けませんので明示的に "\n" を出力する必要がありますが,putsは行末を出力します。
#! /usr/bin/ruby puts "Content-Type: text/html"; puts puts "こんにちは!";
次のようにできます。
#! /usr/bin/ruby print <<HOGE Content-Type: text/html <html> <head> <title>はろー</title> </head> <body> <p>こんにちは!</p> </body> </html> HOGE
Last modified: 2007-01-11 16:10:36