PDA

View Full Version : CGIによるファイル作成


kanyo
2003/02/15, 02:18 AM
SSIによって起動するアクセス解析CGIを設置しようと
しているのですが(毎日個別のログファイルを残すタイプ)、
ログファイルの作製に必ず失敗します。

CGIのアクセス権や、ログファイルを作成する
ディレクトリのアクセス権を変更しても結果が
変わりませんが、CGIによるファイル作成は
許可されない仕様になっているのでしょうか?

# あと、たまにFTPでアップロードしたファイルが
# 更新されなかったり、以前削除したファイルが
# 復活したりするのですが、これはこういうもの
# なのでしょうか?

raccy
2003/02/15, 04:31 AM
CGIによるファイル作成は禁止されていません。
設置したCGI、及びどのように設置したのか(パーミッション等)を教えて貰わないと、
これ以上は何もわかりません。

kanyo
2003/02/15, 09:05 AM
ファイル出力は禁止されているわけではないのですね・・・。
もう少し試行錯誤してみます。

参考までに利用しているCGIを添付します(拡張子は「.txt」にしています)。
CGI rescueのwebaxs2に手を加えたものです。

実際にはファイル名は、添付したソースのCGIを
拡張子「.pl」「.cgi」の2つ分用意して動作確認しています。

CGI設置パスは「/public_html/x/」、ログ出力パスは
「/public_html/top_access/」で、パーミッションはともに705。

「/public_html/」に設置している「index.shtml」から
呼び出しており、呼び出し方は以下の4通り。

1:<!--#exec cgi="./x/webaxs2.cgi"-->
2:<!--#exec cgi="./x/webaxs2.pl"-->
3:<!--#include virtual="./x/webaxs2.cgi"-->
4:<!--#include virtual="./x/webaxs2.pl"-->

このうち、1については「an error occurred while processing this directive」が発生し、残りはすべてファイルオープンのところで
エラーとなっているようです。

もしなにかわかりましたら、ご報告いただけると幸いです。

kanyo
2003/02/15, 09:16 AM
書き漏らしました。

各CGIのパーミッションは、700です。

kanyo
2003/02/15, 09:36 AM
連続で書き込んでしまって申し訳ありません。
とりあえず、問題は解決しました。

原因は、ログファイルの出力先指定にありました。
「#exec cgi」や「#include virtual」を指定したときは、
そのCGIが置いてあるパスが実行ディレクトリになることを
知らず、呼び出しているshtmlファイルからのパスで
指定していました。

あいかわらず、
<!--#exec cgi="./x/webaxs2.cgi"-->
を指定したときはエラーが発生しますが、
とりあえず他の方法で実装することにします。