今野 滋
Rubyを使ったCGIで「世界のみなさん、こんにちは。」と表示させてみましょう。
まず、Terapad にて、下記のように書きます。
#!/usr/local/bin/ruby -Ks puts "Content-type: text/plain;charset=Shift_JIS" puts puts "世界のみなさん、こんにちは。"
改行コードをLFに指定して保存します。漢字コードはShift_JIS のままにしておいてください。
ファイル名はとりあえず、hello.cgi とします。
※保存先はGドライブとします。(My Documents やディスクトップは避けてください。)
※ファイル名に、全角文字、日本語、記号、空白は使えません。a..z0..9のみ可。
cgiとして保存すると、Terapadでは色分け表示されます。
FTPにて、wwwを開き、ディレクトリtestを作成(右クリック→フォルダ→新規作成)。そのtestを開き、先ほど作成した hello.cgi を転送します。
Terminal にて、転送したファイルのモードを700にします。
(一般には755ですが、我々の環境では700が可能です。)
最後に、ls -al で、モードが -rwx------ になっている事を確認します。
その場で直接にプログラムを実行してみる事も可能です。
./hello.cgi と書いて、enter↵。
ブラウザで表示を確認してみます。
※自分のホームページを見るには、アドレス欄に、cens/~ユーザーID を入力してenter↵。
練習です。時刻も表示する様にしてみましょう。答えの例はポインターをかざすか、マークすると現れます。(古いブラウザや欠陥品などでは、始めから見えているかもしれません。)
#!/usr/local/bin/ruby -Ks puts "Content-type: text/plain;charset=Shift_JIS" puts puts "世界のみなさん、こんにちは。" print "ただいま日本の時刻は、", Time.now, " です。"
-Ks を -Ku に書き換え、さらに、charset=Shift_JIS を charset=UTF-8 に書き換えます。そして、「漢字/改行コード指定保存」にて、漢字コードUTF-8N を選択します。UTF-8ではなくて、UTF-8Nです。UTF-8の方を選択するとファイル先頭に表示されない空文字が入り、誤動作の原因になります。保存するとき以外は、どちらもUTF-8と呼ばれています。
Terapad ではUTF-8N保存ができますが、ほかのエディターを利用していて、UTF-8保存しかできず、先頭の隠し文字が残ってしまう場合は、 FTP転送した後で、Terminalにて、muleを使って、#の前にあるゴミを削除します。
Shift_JISにてコードが重複していた ¥ (Japanese yen) と、(back slash) は、UTF-8では区別されます。 Shift_JISにて改行¥nやタブ¥tなどに使われている¥は本来はなので、に自動変換されなかった場合は、手動で置換します。
Macでを書くには英字入力モードで、option+¥
日本のテキストエディターは内部コードにShift_JISを使っているものが主流で、ユニコードでのが書けないものが多くあります。Macの場合にはKEditが便利です。残念ながら、miは未対応です。
参考リンク:
RDEには優れた色分け機能があり、使いたい人もいると思います。しかし、RDEは、ファイルを保存するときに、不適な改行コードで保存してしまいます。RDEで保存したファイルは、一度Terapadで開いて、改行コード指定保存で保存し直してください。
Terapad で保存し直すのがめんどくさい人のために、改行コード変換ツールを用意しました。.cgiで終わるファイルを探し出して改行コードの変換を行います。
kaigyou_cgi.lzh
使い方:クリックしてダウンロード⇒ダブルクリックで解凍⇒kaigyou_cgi.rbをcgiファイルと同じフォルダ内にコピー⇒ダブルクリック
更新日:2005年02月