- ベストアンサー
何故か特定のディレクトリで画像が表示できない
CGIのプログラムを作成していて、ローカルでテストしたものをサーバへアップしています。 プログラム自体は動いているのですが、画像が表示されません。 正確に言えば、CGIを格納しているCGI-BINの中の画像だけ表示されません。 ルートディレクトリとその下のCGI-BINに同じ画像ファイルを置いているのですが、ルートディレクトリでは表示されてCGI-BIN中では表示されません。 サーバに置いても同じです。 狐につままれたような感じです。 こんなことってあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Apacheは詳しくないんですが、検索してみたところ 次のような記事がありました。 http://www.site-cooler.com/tips/apache_cgidirectorygif.htm こちらを参考にApacheの設定を変えればいいようです。 ですが、ローカルはともかく利用するサーバの設定をいじれないようなら画像ファイルをcgi-binの外に出してやるしかないですね。
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
サーバによっては、CGI専用としているディレクトリの中身へのアクセスが規制されている場合があります。 (ブラウザのURL欄に直接画像のURLを入れて試すと403エラーとかになります。) まずはサーバの説明を確認してみては。
補足
ローカル環境のWebサーバは今バージョンを失念してしまいましたがWindowsXP上で走る最新のApacheで、5.6.1との組み合わせです。 画像ファイルは表示されませんが、.cgiファイルを直接叩いても表示されます。 ブラウザのエラー表示は以下の通りです。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, ******@****.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. error.logは以下の通りです。 [Thu Aug 23 20:09:02 2007] [error] [client 127.0.0.1] C:/www/cgi_trial/cgi-bin/abc.gif is not executable; ensure interpreted scripts have "#!" first line [Thu Aug 23 20:09:02 2007] [error] [client 127.0.0.1] (9)Bad file descriptor: don't know how to spawn child process: C:/www/cgi_trial/cgi-bin/abc.gif
お礼
ありがとうございました。 バッチリ表示されました!! 感謝感謝です!!!