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

 

OPEN ERROR (Windows Microsoft-IIS/6.0) (No. 68)

回答日: 2006-06-06

質問

Windows Microsoft-IIS/6.0 上で ニュース更新ツール Ver1.2 を設定しようとしておりますが

「エラー

処理の途中でエラーが起きました。
大変申し訳ありませんが、時間が経ってから再度作業して下さい。

このエラーが続く時は、管理者に連絡して下さい。CGI 設定中の場合、設定を確認して下さい。

(記事一覧の書き出しに失敗しました。OPEN ERROR: D:\web\wwwroot\webdir/index.html_1149551454.temp, Permission denied)」

とでます。wwwroot直下にwebdirを置くとこのエラーが出るのですが、管理者に設定を変えてもらうならどの様に報告すればよいのでしょうか?基本的にはオープンな設定になっているはずなのですが。
投稿日時: 2006-06-06 08:56

回答

■現在のパーミッションの設定の問題

Windows の場合、通常 CGI が行うファイル読み書きは「IUSR_HOSTNAME」など、特殊なユーザで行われるものと解釈されます。(HOSTNAME の部分はそのマシンの名前が入ります。)(※A)

D:\web\wwwroot\ 直下の webdir は、おそらく Windows のエクスプローラなどで「新規作成 -> フォルダ」と作成(またはダウンロードファイル中からコピー)されたかと思いますが、これはログイン中のユーザの権限で作成されますので、D:\web\wwwroot\ がログインユーザで書き込み可能になっていれば問題なく作成できます。

CGI でこのディレクトリ内に書き込みなどを行う場合、さらに、CGIユーザへの書き込み権限を与える必要があります。

具体的なユーザ名や設定方法は環境によって異なりますので、サーバ管理者様にお問い合せ下さい。


■実際の運用時の問題

実際の運用時は管理画面にはウェブサーバの機能を利用したアクセス制限を掛けていただく想定ですが、この掛け方によって実は上記 ※A の状況が変わります。

(これもそれぞれの環境の設定方法によって異なるのですが、)アクセス制限を掛けた後は、認証時に入力するユーザ名のユーザの権限で CGI が実行されますので、 webdir にはそのユーザでの読み書き権限が必要になります。


■管理者様へのお問い合せ方法(例)

上記のように2段階の設定が必要ですので、以下のようにお問い合せいただくとよろしいかと思います。

1.
CGI から ディレクトリ ... 内にファイルを書き出し、更新、削除したいが、その設定方法

(権限は、webdir/ の他 data/ にも必要です。)

2.
CGI にアクセス制限を掛けたいが、その設定方法

3.
CGI にアクセス制限を掛けた後も、ディレクトリ ... に同じようにファイルを書き出し、更新、削除したいが、その設定方法


■補足(パスの記載方法)

現在、$conf{webdir} は以下のように、ディレクトリ区切に「\」を利用して頂いているかと思いますが、

$conf{webdir} = 'D:\web\wwwroot\webdir';

Perl の場合ディレクトリ区切は 「 / 」(半角スラッシュ)ですので、こちらを利用して以下のように記載して下さい。

$conf{webdir} = 'D:/web/wwwroot/webdir/';


◆いただいたご入力からの変更点

・タイトルに実行環境も加えました。
・2本に分けていただいた情報をまとめました。
回答日: 2006-06-06