CGI プログラムの実行環境のチェック
簡単なPerlプログラムを例として、現在のWebサーバの下でCGIプログラムが実行可能かどうかをチェックしてみよう。
- 簡単な例
- チェックポイント
- WebサーバのPerlへのパスを「which」コマンドで確認する。(Webサーバにログインした状態で)
- $ which perl
- /usr/local/bin/perl
- 上のwhichコマンドの回答がそのパスを表す。
- CGIプログラムとして実行するPerlプログラムについては、
- 文字コードをEUC-JP、改行文字LFで作成・保存する
- プログラムの最初の1行は以下のように修正する
- #!/usr/local/bin/perl
- パーミッション(アクセス権の設定)の変更
- アクセス権を「ls」コマンドで調べる。
- $ ls -l sample_hello.pl
- -rwxr--r-- 1 UserID Group 215 July 13 14:40 sample_hello.pl
- ここで -rwx r-- r-- の意味(見方)は、最初の「-」がファイルを表します。次の「r w x」が所有者・ユーザ(u)の権限を表し、ユーザは読み(r)書き(w)実行(x)の権限を持つことを意味します。次の「r - -」がグループ(g)つまりユーザと同じグループに所属する他のユーザの権限を表し、この場合はは読み(r)の権限のみ与えられている。
最後の「r - -」がその他のユーザ(Others)の権限を表す部分です。この場合は読む権限だけを持っていることを示しています。
- CGIプログラムを実行する前に、そのアクセス権限をWebサーバが実行できるように変更する。Webサーバはその他のユーザです。(変更はプログラムを保存後、一度でよい)
- 他人にCGIプログラムの実行権を与える
- 変更対象のプログラムがある場所で、「chmod」コマンドを使う
- $ chmod o+x sample_hello.pl
- これでパーミッションの設定は「-rwx r-- r-x」に変更されます。
- 権利を与える場合は「+」、取り消すには「-」を使います。たとえば、グループとその他のユーザの読み権を取り消す場合は
- $ chmod go-r sample_hello.pl
- とします。これでパーミッションの設定は「-rwx --- --x」に変更されます。所有者の権限は削除変更しないでください。
- プログラムのエラーが原因
- 以上の項目を確認して正しいのに、CGIプログラムがうまく動かない場合は、Perlのプログラム内にエラーがあります。