タイトル | : 通信ネットでのCGI設置の基本 |
投稿日 | : 2004/05/26(Wed) 23:49 |
投稿者 | : くじら |
ここではあくまで基本的な設定で解説しときます☆
cgiファイルは必ずcgi-binディレクトリ(又はcgi-bin以下に作成したサブディレクトリ)に入れてください。
CGIファイルの1行目(perlパス)を
#!/usr/bin/perl に変更
パーミッションをそれぞれ変更(詳細は下記)
カスタム(改造)した場合は文法ミスが無いか確認(文法チェッカー使用推薦)
デフォルト(配布されたままの物にperlパスを変更しただけの物)を転送して正常に動くか確認。動いた場合はいじった所を確認する。
間違った転送モードで転送していないか確認
CGIはHTMLと違って「;」や「'」等が無いだけでエラーになる場合があるので改造する場合は十分注意して下さい。
---------- パーミッション設定 ----------
.cgi 705 (755) … 実行ファイル
.pl 606 (666) … 外部読み込みファイル(jcode.plなど)
.dat または .log 606 (666) … ログファイル(書き込みとかを記録するファイル)
ディレクトリ (755) … 一般的に言うフォルダ
-----------------------------------
これで大抵動くと思います。動かない場合は()内の数値でチャレンジしてみて下さい。
またape boardのパーミッション等はこちらも参考に
index.html
└/apecbordplus/ 【755】
| apeboard_plus.cgi 【705】
| xxxxxxxx.dat【606】 (必ず名前を変更しましょう)
| apeboardp_mt.cgi 【705】
| boardini.cgi 【606】
| skinini.cgi 【606】
| jcode.pl 【606】
| apeskin.html 【644】
| res_file.html 【644】
| write.html 【644】
└/img/ 【755】
このフォルダ内の全ての画像ファイル【644】
上記パーミッションに限らず実行権は少なくが基本です
他のパーミッションで動けば報告を☆(少ない属性で)
---------- エラーの種類と原因 ----------
# 500エラー
CGIファイル(またはディレクトリ)のパーミッションが違う→もう一度確認
CGIファイルの1行目(perlパス)が違う → #!/usr/bin/perl に変更
CGIファイルの文法がおかしい→文法チェック
# 403エラー
CGIファイルのパーミッションが厳し過ぎる→パーミッションの数値を大きくする
# 404エラー
ファイルがサーバーに無い→アドレスの確認とファイルをアップしているか確認
---------------------------------------
他にもありますが主な原因だけ(追加情報募集中)
---------------------------------------
余談ですが、CGIの中にはファイルを自動作成する機能がある物があります(過去ログ等)。その場合にはそのパーミッションが666で作成するようになっているスクリプトが多いです。気になる場合は修正して下さい。