PerlによるCGI作成手順
[HOME] [BACK] [NEXT]自分のパソコンはWindowsマシン、プロバイダーはUNIX系マシンを仮定して、プロバイダーのサーバー上でCGIを動かすまでの手順を簡単に述べます。別に決まった手順が有るわけでは無いのですが、基本的なものです。
準備
perlが使えるプロバイダーと契約
自分のパソコンにWebServerを導入してください。
自分のパソコンにOSに合ったperl.exeをデバッグのために導入してください。
自分のパソコンにperl.exeがインストールされていることを確認
自分のパソコンのコマンドプロンプトから
perl -v
とタイプしてリターンを押すと、「Larry Wall」やらperlのバージョンやらが表示されれば導入されています。
正しく導入したはずなのに出てこないぞと言う人は、perl.exeが存在するフォルダに降りていって、再度やってみてください。
これで表示されればパスが通っていないだけです。正しくパスを通しましょう。これでも表示しない人は導入が間違っています。
「Hello perl !」を表示するCGIを作る
例としてテキストエディタで以下の様に作成して「hpl.cgi」という名前でWebServerがスクリプトの実行を許しているフォルダに保存します。WebServerがIISだとデフォルトはで「c:\InetPub\scripts」です。
$|=1; print "Content-type: text/html","¥n¥n"; print "<HTML>Hello perl !</HTML>"; __END__
また、拡張子「cgi」の付いたプログラムがperl.exeにより実行されるための設定がWebServerで完了している必要が有ります。IIS3.0ではレジストリへの直接登録、IIS4.0ではインターネットサービスマネージャーで仮想ディレクトリのプロパティ設定でそれぞれ行います。(IIS4.0を超えるヴァージョンは使ったことがありませんがこの手順は異なる可能性があります。)
自分のパソコンで実行してみる
インターネットに接続して、自分のパソコンのWebServerを起動します。
次にブラウザを開いてURL入力欄に
http://(コンピュータ名)/scripts/hpl.cgi
とタイプしてリターンを押します。これで「Hello perl !」とブラウザに表示されればOKです。
ここでは「c:¥InetPub¥scripts」に「hpl.cgi」が保存されているとし、ここのURLは「/scripts」になっているとします。
UNIX系マシン用に少し変更する
プロバイダーのサーバーマシンOSがWindowsであればそのままアップロードすれば良いのですが、CGIを許可しているプロバイダーはほとんどUNIX系です。このサーバー上で動かすためには最低限以下の様な手順が必要となります。
ソースの最初の1行にperl.exeの場所を示す以下(ローカルパス)を追加する。
#!/usr/local/bin/perl -w
サーバーマシン内の「/usr/local/bin」という絶対パスにperl.exeが有るという意味です。
最後の「-w」はperl.exeがプログラムを実行させる際厳しく文法等をチェックさせるためのオプションです。その他サーバー内ローカルパス指定を変更
その他にサーバー内のファイルを指定するパスの記述をUNIX用に変更します。
例えば、ライブラリをインポートする時の指定「mylib¥cgi-lib.pl」を「mylib/cgi-lib.pl」にします。アップロードする
契約しているプロバイダーに「hpl.cgi」をアップロードします。以下ftpを仮定します。 まずftp用のファイラーを起動してプロバイダーに接続します。ftpファイラーについては記述しません。
次に「hpl.cgi」をアスキーモード又はテキストモードで、プロバイダーから事前に教えられている、自分のCGI実行可能な場所にアップロードします。
アスキーモード又はテキストモードと呼ばれるモードでアップロードすると、そのファイルの改行コードがアップロード先OS環境に合ったものに自動変換されます。
(例えば win → UNIX ならば CR+LF → LF となります。)「hpl.cgi」のパーミッションを設定する
ftp用ファイラーでパーミッションの変更をします。この場合「755」で良いでしょう。
パーミッションの変更はtelnet接続してコマンドラインで実施する方法もありますが、最近のftp用ファイラーでは、パーミッションの変更ができるものがほとんどです。- 動作確認
アップロードした場所に相当するURLをブラウザで指定して「Hello perl !」と表示されればOKです。