dポイントプレゼントキャンペーン実施中!

環境
OS:RedhatLinux ES3
WevServer:Apache/2.0.54
Perl 5.8.0

CGIを設置しているディレクトリのなかに、JapaScriptを書いている
xxx.jsとスタイルを定義しているxxx.cssを置いているのですが、
CGIを実行すると、Apacheのエラーログの中に

パーミッションが755だと
(8)Exec format error: exec of '/hoge/xxx.css' failed,
(8)Exec format error: exec of '/hoge/xxx.js' failed,
パーミッションを666すると
(13)Permission denied: exec of '/hoge/xxx.css' failed,
(13)Permission denied: exec of '/hoge/xxx.js' failed,

が出力されてしまいます。
もちろん、JavaScriptのエラーも出てしまいます。

.jsや.cssを正常に読み取らせるにはどのようにhttpd.confを
設定すればよいのでしょうか?

※ちなみに、CGIの実行を許可(ScriptAlias)していない
ディレクトリでは.jsや.cssは正常に動いています。

A 回答 (2件)

ScriptAlias で指定された場所においては、Apache は全てのファイルを CGI スクリプトとみなしてしまいます。



なので、拡張子が .cgi、.pl のファイルだけ CGI とみなして欲しいのであれば、CGI スクリプト以外のファイルを別のディレクトリに置くか、以下のように設定してあげる必要があります。

Alias xxx yyy

<Directory yyy>
AddHandler cgi-script .cgi .pl
Options ExecCGI
</Directory>
    • good
    • 4
この回答へのお礼

entreeさんご回答ありがとうございました。

<Directory yyy>
AddHandler cgi-script .cgi .pl
Options ExecCGI
</Directory>

こちらの記述は既にしていましたが、entreeさんの回答をヒントに
ScriptAlias の設定をコメントアウトすることで、正常に
動かすことができました。

ありがとうございました。

お礼日時:2007/02/05 09:20

cgiを許可してるだけで 何がcgiなのかを指定してないからとか


http://httpd.apache.org/docs/2.0/howto/cgi.html

質問のエラーからはどちらも実行ファイルとして実行しようとしていると取れるからCGI側でそのファイルを実行ファイルとして開こうとしたりする記述があるのでは?
    • good
    • 0
この回答へのお礼

SAYKAさんご回答ありがとうございます。

教えていただいたサイトはとても参考になりました。

お礼日時:2007/02/05 09:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!