.d8888b. .d8888b. 8888888
d88P Y88b d88P Y88b 888
888 888 888 888 888
888 888 888
888 888 88888 888
888 888 888 888 888
Y88b d88P Y88b d88P 888
"Y8888P" "Y8888P88 8888888
PCP => Perl CGI Program (ming)
Version 1.0
Q3.2: ファイルアクセス権限とは何ですか? どうしたらそれを変更できますか?
Q3.3: PerlをどこにインストールすればPerlを実行できるようになりますか?
Q3.4: "Server: Error 500"メッセージが出るのですが、どうしてでしょうか?
Q3.5: データをセーブするためにファイルをオープンするよう書いているのですが、 open()コマンドが失敗します。 どうなっているのでしょうか?
一般的なサーバ設定がされていれば、サーバは"cgi-bin"ディレクトリに置いている CGIスクリプトを実行します。しかしながら、サーバ管理者はサーバ設定ファイル で別名(エイリアス)を設定することもでき、その結果、ある拡張子 (例:.cgi, .pl)を持ったスクリプトも実行させることが可能になります。
ファイル権限には読込、書込、実行権限があり、(uidとして知られる)
ユーザ認証と特定のグループへのメンバーシップ[訳注:そのグループに
属しているという事]に基づいて各利用者への権限が認可されます。
ファイルの権限を変更するにはコマンド:chmodを使用します。
以下はその一例です。:
[訳注:頭に%がついているのはUNIXのCシェルを使っている事を示しています。
当然の事ながらそのままではWindowsやMacでは使えません。]
これには0700(8進数)の権限があります。つまり(所有者を除いて) 誰もこのファイルに対し読込、書込、実行ができないことを意味します。 chmodを使って権限を変更してみましょう。:% ls -ls form.cgi 1 -rwx------ 1 shishir 974 Oct 31 22:15 form.cgi*
これで権限が変更され、"shishir"と同じグループにいる利用者も その他の一般利用者も同様にこのファイルの読込、実行権限を 持つようになりました。% chmod 755 form.cgi % ls -ls form.cgi 1 -rwxr-xr-x 1 shishir 974 Oct 31 22:15 form.cgi*
様々な8進コードの詳細な説明については、manページのchmodコマンドを参照して ください。
Perlはシステムのどこにでもインストール可能です! あなたが確認しなければならない唯一のことは、サーバがchrootされた 環境では走っていない、つまりはちゃんとインタープリタにアクセスできて いるかということです。 別な言い方をすれば、システム管理者はルートディレクトリを変更できるわけで、 "/"が実際のルート("/")ではなく、別のディレクトリを指してはいないかと いうことです。
次のような理由でサーバエラーを受け取っている可能性があります。:
一般にHTTPサーバはユーザ"nobody"、あるいは"www"、あるいは最小限の権限を
有するある別のユーザIDで実行されています。
その結果、(あなたがファイルを新規作成しようとしている)ディレクトリは
このプロセスIDで書き込めるようになっていなければなりません。
[訳注:このユーザIDはUNIXのHTTPサーバでよく使われているものです。
WindowsのIIS等ではまた違ったIDが使われています。
Perl初心者のFAQ参照]
安全な側にいるようにするには、成功したかどうかわかるように常にopenコマンド
からの戻り値を確認しなさい。:
[訳注:以下のサンプルは優れものですから、
常に組み込むようにしましょう。(^^)]
open (FILE, "/abc/data.txt")
|| error ("Could not open file /abc/data.txt");
.
.
.
sub error {
my ($message) = @_;
print <<End_of_Error;
Content-type: text/html
Status: 500 CGI Error
<HTML>
<HEAD><TITLE>CGI Error</TITLE></HEAD>
<BODY>
<H1>Oops! Error</H1>
<HR>
$message
<HR>
</BODY>
</HTML>
End_of_Error
}
This document, and all its parts, are Copyright (c) 1996, Shishir Gundavaram and Tom Christiansen. All rights reservered. Permisson to distribute this collection, in part or full, via electronic means (emailed, posted or archived) or printed copy are granted providing that no charges are involved, reasonable attempt is made to use the most current version, and all credits and copyright notices are retained. Requests for other distribution rights, including incorporation in commercial products, such as books, magazine articles, or CD-ROMs should be made to either of the authors.
ご意見、ご要望は、
電子メールまたは
投稿にお願い致します。ホームページへ戻る。