CMS「すぐ使えるCGI」の開発者がご質問にお答えします

 

Windows2003server で画像を添付するとエラーとなります。 (No. 15)

回答日: 2005-10-25
<< 掲示板一覧  >> 質問する

質問

自社サーバーで、Windows2003serverです。
画像付ウェブページ更新ツールで、文字のみの更新はできますが、画像を添付しますと下記のエラーとなります。
どの様な原因が考えられますでしょうか?


CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
投稿日時: 2005-10-25 10:09

回答

■入力画面 → 確認画面 への遷移時にこのエラーが起こる場合

《基本的な原因》
アップロードしたファイルの保存に失敗していると思われます。

《対処方法》
ファイル保存用のテンポラリディレクトリが存在し、書込み権限があることを確認して下さい。

ファイル保存用のテンポラリディレクトリは、admin.cgi の 66〜77行目付近に以下のように記載があります。

=========CGI中の表記ここから

#---------------------------------
# 添付ファイル一時保存ディレクトリ(ファイルシステムとしてのアクセス用)
#---------------------------------
# このディレクトリには、Webサーバ経由でアクセスできる必要があります。
# 相対パスでも絶対パスでも指定できます。
# Windowsで稼動させる場合、絶対パスでないとアクセスできない場合があります。

$conf{file_dir} = '../tempfiles/';

=========CGI中の表記ここまで

相対パスだとうまく認識できていない可能性がありますので、パスの設定方法も確認して下さい。
(書込みが期待通りにできる $conf{web_dir} と同じ表記方法でOKです。)

このディレクトリを予め作成し、書込み権限を与えて下さい。


■確認画面 から「確定」ボタンを押した時にこのエラーが起こる場合

《基本的な原因》
この場合、上記のテンポラリディレクトリから、公開ディレクトリへのファイルの移動がエラーになる事が原因と予想できます。

Windowsの場合、与えた権限によってはファイル作成ができてもファイル削除ができないことがエラーの原因となっているケースが多いです。

上記のテンポラリディレクトリ内部に temp_1128242524 といった名前のディレクトリがあり、その内部に添付した画像ファイルがあれば、移動時にファイルの削除ができないことが原因です。


《対処方法》
$conf{file_dir} の権限設定を「フルコントロール」など、より高いものに上げて下さい。

この他、公開ウェブディレクトリ( $conf{web_dir} )の権限も不足がないか確認して下さい。
ディレクトリの作成や削除の権限が必要です。


■参考:正常なエラー画面が表示されない原因

上記のようなエラーの場合、通常はCGIが原因を記載したエラー画面を表示しますが、Windows サーバ(IIS)の場合、バージョンや設定によっては、プロセスコントロール機能があるためエラー出力をブラウザに表示できない場合があります。

◆備考:頂いたご入力からの変更

タイトルに、ご利用の環境を追記しました。
回答日: 2005-10-25

さらに詳しく