スクリプト検索 配布サイト検索 Google Search  
スクリプト検索オプション
サイト検索オプション
CGI-Search 初心者のためのCGI/Perl設置解説

ソフトウェアを準備しよう

  • ご用意して頂くものとして、Perlなどのプログラムを書くためのテキストエディターが必要です。窓の杜Vectorなどに沢山ありますので自分が使いやすいものを利用しましょう。
  • 次にプログラミングしたCGIが実行可能なサーバー環境です。本レッスンではUNIX系サーバーを前提に解説していきます。
  • 最後にプログラムファイルをサーバーへアップロードするためのFTPソフトをご用意下さい。テキストエディターと同様に窓の杜Vectorなどで手に入ります。
  • 以上が整ったらいよいよプログラミングを開始しましょう。

    簡単なプログラミングでCGIが実行できるかテストしましょう

    既にCGIを実行されている経験のある方はこの章はすっ飛ばして頂いても結構です。ですが、CGIは初めてな方は是非一読下さい。
    Perlのプログラミングはまず最初に、1行目の左端に[#!/usr/bin/perl]と書くことから始まります。
    #!/usr/bin/perl
    
     これはPerlのプログラムを呼び出す記述でPerlまでのパスを表します。ご利用のサーバー仕様などをご確認の上Perlまでのパスを指定して下さい。大抵の場合、前記パスか[#!/usr/local/bin/perl]の何れかでパスが通ります。
     では、サーバーのPerl作動確認も兼ねて簡単な記述でプログラムを動かしてみましょう。次の様に記述します。
     ※記述サンプルは、サンプル上部の[view plain]をクリックすることで原文を参照できます。また[copy to clipboard]で全文をコピーできます。
    #!/usr/bin/perl
    
    print "Content-type:text/html;\n\n";
    print "Hello!!";
    exit;
    
    この記述は「Hello!!」と画面上に表示するプログラムです。実際に「Hello!!」と表示させているのは4行目の「print "Hello!!";」です。では3行目と5行目の記述はなんでしょう?
    3行目の記述は画面上に文字列を表示させるための指定記述でHTTPヘッダーと呼びます。記述の最後に「\n\n」と正規表現での改行記号が2つ必要なことに注意して下さい。実際には、この記述はブラウザにHTMLを認識させるための記述で画面上には表示されません。
    5行目の記述はプログラムの終了を意味します。
    ファイルの保存
    ではこの記述のファイルを「bbs.cgi」として保存しましょう。保存時の注意点は文字コードを「Shift_Jis」改行コードを「LF」として下さい。FTPソフトによってはファイルアップロード時に改行コードを「LF」に書き換えてもらえるものもあります。その場合は「CR+LF」で保存しても問題ありません。
    ※文字コードについて
    本掲示板プログラムは文字コードを「Shift_Jis」で出力及び変換するように設計されています。ですので、プログラムを保存する時にも同じ「Shift_Jis」にて保存する必要があります。と言うことはですね、出力及び変換を「EUC-JP」に設計し、ファイル保存の文字コードを同様に「EUC-JP」で保存すれば文字コードを「EUC-JP」で運営出来るということになりますね。今回のレッスンで後々役立つかもしれませんので覚えておいて下さいね。
    ※改行コードについて
    Windowsなどで使われるメモ帳などのテキストエディターの改行は、Windousの改行コード「CR+LF」にて保存されています。ですが、一般のサーバーOSとして使われるUNIX系サーバーの場合、改行コードは「LF」の設定になっています。このためWindowsの改行コード「CR+LF」のファイルをそのままUNIX系サーバーへアップロードした場合は不都合が生じてしまいます。この為に改行コードをUNIX系用に変更する必要があります。
    ファイルのアップロード
    保存が完了すればFTPソフトを利用し、サーバーへファイルをアップロードしましょう。転送モードは「アスキー(ASCII)」を選択して下さい。アップロード場所は任意の場所で結構ですが、仮に「bbs」ディレクトリを作成して、その中にアップロードしたと今後仮定します。
    ※転送モードについて
    FTPでの転送において2種類の転送モードがあります。「アスキー(ASCII)」モードと「バイナリ」モードです。
    まず後者の「バイナリ」モードは、転送元ファイルが転送後ファイルとまったく同じファイルとしての転送を目的としたモードとなります。例えば画像ファイルやFlashファイルなどで利用します。前者の「アスキー(ASCII)」モードは、テキストデータを扱うファイルでの転送モードとなります。FTPではこのモードで転送すると、改行コード自動変換機能がある場合は転送時に改行コードの自動変換が行われます。
    Perlでよく使われる「アスキー(ASCII)」モード転送のファイル種類(拡張子)です。FTPソフトによっては設定出来るものもありますので参考にして下さい。
    *.html *.htm *.shtml *.shtm *.cgi *.pl *.dat *.log *.lock *.pm *.sh *.txt *.js *.css *.rdf *.xml *.rss *.php
    
    パーミッションの変更
    bbs.cgi」のパーミッションを変更します。「755」又は「705」にして実行権を与えます。大抵のFTPソフトではサーバー側対象ファイルを右クリックして「属性変更」選択でパーミッション変更モードになるかと思います。
    ※パーミッションについて
  • [644]or[604]:読み出し専用ファイル用のパーミッション。通常のHTMLファイルなどはこの設定。
  • [666]or[606]:データファイルなどファイルに書き込みを行う必要があるファイルへの設定。
  • [755]or[705]:CGIの実行権が必要なファイルに与える設定。
  • [777]or[707]:CGIからファイルを作成する必要がある場合、その作成先ディレクトリのパーミッションをこの設定にする必要があります。例えば画像アップ先のディレクトリなど。
  • プログラムの実行
    ブラウザから「bbs.cgi」にアクセスしてみましょう。
    http://[あなたのホームページURL]/bbs/bbs.cgi
    
    となるかと存じます。このURLにアクセスします。
    画面に「Hello!!」と表示されたら成功です。
    次からは実際に掲示板プログラムを書いていきましょう。
    広告