やまとです。
CGIから、画像を呼び出しています。
CGIファイル:Apache/cgi-bin/test.cgi
画像ファイル:Apache/cgi-bin/image/test.gif
test.cgiでの画像呼出部分:<image src=./test.gif>
しかし、画像が出てきません。なぜでしょう?
自分なりに調べてみましたが、大分原因が分かってきました。
error.log見てみると、
c:/apache/cgi-bin/test.jpg is not executable; ensure interpreted scripts have "#!" first line
couldn't spawn child process: c:/apache/cgi-bin/top_image.jpg
と言うエラーでした。
どうやら、画像ファイルをCGIスクリプトとして見てしまっているようです。
(↑考え合ってますよね)
おそらく、httpd.confがおかしい(?)Aliaseですかね(?)
ここまで調べてみましたが、対処方法がわかりません。
どなたか、どこを、どう直せば良いのか、
出来るだけ詳しくご教授願えないでしょうか?
宜しくお願いします。
No.1
- 回答日時:
こんにちは。
>画像ファイルをCGIスクリプトとして見てしまっているようです。
ということですが、どのように呼び出されているのでしょうか??
最終的にHTMLで表示させるだけなら、画像のファイル名を取得するだけでよい、と思うのですが。
もしかしたら/cgi-bin/下のディレクトリにあるため、そのように認識されてしまっているのかもしれません。
>httpd.confがおかしい(?)
そのような設定にすることも可能ですが、他のものはどうなっているのでしょうか?
単純なHTML等で同じ画像を呼び出した場合はどうなりますか??
この回答への補足
ご回答有難う御座います。
>他のものはどうなっているのでしょうか?
他のものと言いますと…?
>単純なHTML等で同じ画像を呼び出した場合
普通のHTMLから、画像を呼んでも、同じ結果になってしまいます。
やはり、画像ファイルをCGIとみているようです。
No.2
- 回答日時:
「test.gif」をコールして、「test.jpg」のエラーになる原因は分かりませんが、CGIソースのどこかに「test.gif」を間違えて、「test.jpg」とかいてあるのだと思います。
configの中で、「cgi-bin」フォルダの設定が違っているんだと思います。
つまり、cgi専用エリアにしてあるのだと思います。
もしかしたら、ドキュメントルート自体の設定も違っていませんか?
cgi-binの下にHTMLファイルや画像ファイルもいれるなら、configでそのように宣言しておかなければ認識しません。
その場合は、「/cgi-bin/」にはcgiだけを入れ、画像は「/images/」に入れて、絶対アドレスで指定します。
この回答への補足
ご回答有難うございます。
Document Root は設定した時のまま以下の様にしています。
DocumentRoot "c:/Apache/htdocs"
ここも、書き換える必要があるのでしょうか?
あるのでしたら具体的にどのように変えるのでしょうか?
すみません。宜しくお願いします。
No.4
- 回答日時:
sinxさんに1票。
提示したフォルダ構成が正しいとすれば、呼び出すパスが間違ってる時点で、正しいトラブルシューティングは不可能です。
sinxさん、you-mさんご回答有難う御座います。
(すみません、一緒に回答のお礼をしてしまって…)
画像名などは、単なるタイプミスでした。
呼び出すパスはあっています。
すみません(・_・;)
No.5
- 回答日時:
画像ファイルやhtmlファイルを/cgi-bin/以下に置くと正しく表示できません。
例えば:
c:/Apache/htdocs/test.gif
に置いて、
<image src=test.gif>
にすれば表示できます。
もしどうしてもcgi-bin以下に画像を置きたい場合は、面倒ですが、perlで画像ファイルをオープンして、それを1行づつprint文でブラウザに返す方法があります。めんどいので、htdocs以下にいれて、srcのパスをサイトルートの/から始めたほうが良いですよ。
No.6
- 回答日時:
ごめんなさい。
さっきの回答で、画像リンクがまちがってました。正しくは:
<image src=/test.gif>
です。
ご回答ありがとうございます。
nak205さんの教えて頂いた方法で画像が表示されました。
では、
CGIファイル:c\:apache/cgi-bin/test_dir/test.cgi
画像ファイル:c\:apache/cgi-bin/test_dir/image/test_img.gif
(CGIの)画像呼び出し部分:<image src=./image/test_img.gif>
以上の様に呼び出すことは出来ないでしょうか?
この方法ですと、画像ファイルの管理がしやすいので…
宜しくお願いします。
No.7ベストアンサー
- 回答日時:
> CGIファイル:c\:apache/cgi-bin/test_dir/test.cgi
> 画像ファイル:c\:apache/cgi-bin/test_dir/image/test_img.gif
>(CGIの)画像呼び出し部分:<image src=./image/test_img.gif>
>以上の様に呼び出すことは出来ないでしょうか?
通常できません。Apacheはhttpd.confのDocumentRootで指定されている以外のディレクトリからファイルをブラウザに返せないんです。
CGIも同様ScriptAliasで指定したディレクトリ以外に置かれたファイルは実行できないし、逆にブラウザからリクエストされると、そこに置かれたファイルは何でも実行しようと試みます。
ただ、DocumentRootに置いたcgiファイルを実行できるような設定はあります。
# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
#
# To use CGI scripts:
#
AddHandler cgi-script .cgi
のようにAddHandlerで始まる行のコメントをると、cgiファイルc:/Apache/htdocsいかで実行できるようになるはずです。
もう一つは裏技なんですが、画像ファイルを
c\:apache/cgi-bin/test_dir/image/
に置いて、
c:/Apache/htdocs/test_dir/
にc\:apache/cgi-bin/test_dir/image/のショートカットを置きます。(UNIXではシンボリックリンク)
画像へのリンクは<image src=/test_dir/image/test_img.gif>
もちろん、ショートカットをc:/Apache/htdocs/直下においても構いません。
そのときは<image src=/image/test_img.gif>
となります。
ややこしいですよね。やっぱりhtdoc以下に置いたほうが良いとおもうんですけど。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jcode.plが読み込めない
-
perlのrequireの動き方について...
-
perlをインストールしたのに使...
-
cgiとplとpm
-
cgiからcgiをコールする。
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
DBを10件毎に表示ページング...
-
apacheでPerl CGIが作動せず、5...
-
Excelで第一〇曜日を求める方法...
-
燃えるゴミの日は何曜日ですか?
-
エクセルで相対パスの書き方を...
-
[Excel] ある日の曜日が当月の"...
-
VBA。複数のChangeイベントをま...
-
6月の第2 第4火曜日は何日...
-
週2回のペースって だいたい何...
-
ディレクトリパスの取得について
-
ftpでのネットワークバイトオー...
-
CGI RESCUEの簡易予約システムY...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
perlのrequireの動き方について...
-
jcode.plが読み込めない
-
自CGIのURLのパス部分を取得す...
-
Perlソースを2つのファイルに分...
-
Perlのデバッグ方法って。。。...
-
mt-check.cgiでForbiddenエラー...
-
webからroot権限のコマンドを実...
-
useとrequireでエラー
-
画像のURLの変数を別のCG...
-
Quantifier follows nothing in...
-
require文が実行できない
-
コマンドラインでGET or POSTで...
-
apacheのCGI設定について教えて...
-
Not Found 404エラー時のCGI出力
-
htmlからテキストを返すperlを...
-
perlのcgiで、変数の中身を表示...
-
use CGI
-
フォームでインクリメント入力→...
-
Internal Server Error
おすすめ情報