こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

htmlで画像が表示されない

CGIを勉強し始めた者です。
手始めにCGIを使わずに画像表示をさせたところ早速つまづきました。
アドバイスお願いします。

vine linux 6.3 に apache2.4をソースからインストールしました。
/usr/local/apache2/htdocs に以下の cgi-test.html を置きました。
<html>
<head>
<meta http-equiv="Content-Type:" content="text/html; charset=UTF-8">
<title>CGI TEST</title>
</head>
<body>
<h3>CGI TEST</h3>
<img src="../cgi-bin/a0.gif">&nbsp;<img src="./a1.gif">
</body>
</html>
パーミッションは 755 root root cgi-test.html
/usr/local/apache2/cgi-bin のパーミッションも 755 root root です。
ここに 数字0~9のgif画像を置いています。パーミッションは 644 root root
表示されないので/usr/local/apache2/htdocsにa0.gif, a1.gif を置いてみました。
パーミッションは 同じく 644 root root です。

数字0は表示されませんが、1は表示されます。
なぜ0が表示されないのかお教えください。

投稿日時 - 2016-10-24 16:13:52

QNo.9247007

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

もしかして、DocumetRoot(/usr/local/apache2/htdocs) に置いた gifなら表示できるのに
cgi-binの下においたgifだと、HTMLでそのパスを指定しているのに表示できないのは、なぜか
という疑問でしょうか?

だとしたら、まずはapache2の設定ファイルの
ScriptAlias /cgi-bin ~
の記載を確認されて下さい。

もし、ScriptAlias /cgi-bin ~ の設定がないなら cgi-bin/*gifを指定したときの
ファイルを置くべき物理パスは
/usr/local/apache2/cgi-binではなく
DocumentRootしたのcgi-bin (/usr/local/apache2/htdocs/cgi-bin) に なります。



また、
ScriptAlias /cgi-bin /var/www/cgi-bin
とか
ScriptAlias /cgi-bin /usr/lib/cgi-bin
になっていたり、

一応は、ScriptAlias /cgi-bin /usr/local/apache2/cgi-binと設定しているが
別のconfigファイルがあって、そっちで設定が上書きされているということもあり得ます。

この場合は、/usr/local/apache2/cgi-binとなるように、設定を変更する必要があります。

投稿日時 - 2016-10-24 18:53:23

お礼

アドバイスありがとうございました。

DocumentRootより上位のDirectoryを指定している
ことに気づいておりませんでした。

おかげさまでCGIの勉強が進みます。

投稿日時 - 2016-10-25 08:37:37

ANo.2

a0.gif と a1.gif のパスが違いますが、別々のディレクトリに置いているのですか?
もし、同じディレクトリに置いているのであれば、a0.gif のパスを修正しましょう。

投稿日時 - 2016-10-24 18:00:23

お礼

アドバイスありがとうございました。

DocumentRootより上位のDirectoryを指定している
ことに気づいておりませんでした。

おかげさまでCGIの勉強が進みます。

投稿日時 - 2016-10-25 08:37:17

ANo.1

a0.gifがcgi-binフォルダにあると指定されていますが?

a1.gifと同じフォルダにあるんですよね?
だったら./a0.gifとすればいいだけだと思いますけど。

投稿日時 - 2016-10-24 16:32:49

お礼

アドバイスありがとうございました。

DocumentRootより上位のDirectoryを指定している
ことに気づいておりませんでした。

おかげさまでCGIの勉強が進みます。

投稿日時 - 2016-10-25 08:36:36