Apache2.2環境でPerlで参照したgifが表示できません!
今まで自分のPC(Windows Me)でHP(@niftyで公開しています)にアップする前のデバック環境としてApacheとActivePerlをダウンロードをして構築していました。
全く問題無く動作をしていたのですが、PCのハードが調子が悪くなりとうとう動かなくなりました。そこで、この際最新OSのWindows7版PCを購入して可能な限り同じ環境を再構築しようと努力をしているのですが、どうも上手く行かないため助けてください!
今回の環境は、OS=Windows7、Apache=2.2、ActivePer=l5.12です。
Apache=2.2のhttpd.confファイルの内容が以前のものと違うので、このhttpd.confの修正漏れだとは思うのですが・・・
具体的には、TOPページはhtmlで記述し、そのhtmlからPerlプログラムを呼び出す形を取っています。
htmlではgifが正常に表示されるのですが、同じgifをPerlからも参照をしているのですが、gifの絵が表示されません。しかしながら、gifに張ったリンクは正常で、制御は正しくリンク先に移行します。
gifファイルは、下記に在ります。
c:/Program File/Apache Group/Apache2/htdocs/GIF/button-fix.gif
Perlプログラムは、下記のようにしています。
$gif_dir = 'c:/Program Files/Apache Group/Apache2/htdocs';
・・・・
<INPUT TYPE=\"image\" src=\"$gif_dir/GIF/button-fix.gif\">
そして、気になる事があります。
$top = 'c:/Program Files/Apache Group/Apache2/htdocs/index.htm';
・・・・
<A href=\"$top\"><IMG src=\"$gif_dir/GIF/button-fix.gif\" border=\"0\">\">
と記述したgifアイコンにマウスを持って行くと、ウィンドウの左下のリンク先アドレスを表示するエリアに下記のように、字化け(スペースが%20になっている)しているように表示されてこのアイコンだけはクリックしても正しく動作をせず、ノンオぺレーションです。
file:///c:/Program%20Files/Apache20Group/Apache2/htdocs/index.htm'
この程度の情報で原因が判りますでしょうか?
よろしく、お願い致します。
No.2ベストアンサー
- 回答日時:
ローカル環境を構築しているのであれば、
$gif_dir = 'c:/Program Files/Apache Group/Apache2/htdocs';
<INPUT TYPE=\"image\" src=\"$gif_dir/GIF/button-fix.gif\">
ではなくて
$gif_dir = 'http://localhost';
<INPUT TYPE=\"image\" src=\"$gif_dir/GIF/button-fix.gif\">
になるのではないでしょうか?
(DocumentRootがc:/Program Files/Apache Group/Apache2/htdocsだとして)
この回答への補足
kt_yukaさんへ
大変ありがとうございました。
教えて頂いたように、$gif_dir = 'http://localhost'; と書き直すことによってgif画像が正常に表示しました。本当にありがとうございました。
厚かましいようですが、もう1点教えて頂けないでしょうか?
gifファイルは上記の修正で直りましたが、今度はテキストファイルが読み込めなくなりました。
<今までは>
$quizdir = 'c:/Program Files/Apache Group/Apache2/htdocs';
・・・・
・・・・
sub read_quiz {
local($m);
$myquiz = $select_file[$myselect];
&lock_open(QUIZ_IN, "$quizdir/TEXT/$myquiz.$quizext_in");
@quiz_in = <QUIZ_IN>;
&unlock_close(QUIZ_IN);
foreach $m (@quiz_in) { chop($m); }
}
で正常にtxtファイルが読み込めていましたが、gifファイルを参照したように、下記のように変更すると、今度はtxtファイルが読み込めなくなりました。
$quizdir = 'http://localhost';
間違い無く、c:/Program Files/Apache Group/Apache2/htdocs/TEXT/の下には abc.txt が確かにあります。
httpd.confファイルで何か設定ミスか漏れが有るのでしょうか?
よろしく、お願い致します。
kt_yukaさんへ
教えて頂いたように、$gif_dir = 'http://localhost'; と書き直すことによってgif画像が正常に表示しました。本当にありがとうございました。
txtファイルが読み込めない件に関しては、もう少し私の方で勉強をして見ます。
アドバイスを頂き、ありがとうございました!
No.1
- 回答日時:
> $gif_dir = 'c:/Program Files/Apache Group/Apache2/htdocs';
> ・・・・
> <INPUT TYPE=\"image\" src=\"$gif_dir/GIF/button-fix.gif\">
単順にパス間違いに見えます。
このソース本当に以前使って実際に動いていたそのままでしょうか?
この回答への補足
回答を頂き、ありがとうございました。
一応、パスは見直しましたが、正しいように思います。
間違い無く、以前の環境では動いていました。
でも、どこかに私の勘違いが有るのだと思いますが、それが判りません。
先ほど、Apacheのerror.logを開いて見たところ、Starting thread to listen on port 80.と
正常にApacheは起動できていると思いますが、その後、私のプログラムを動作させると下記のようなエラーログが載りました。
[error] [client 127.0.0.1] defined(%hash) is deprecated at c:/Program Files/Apache Group/Apache2/cgi-bin/jcode.pl line 684.\r, referer: http://localhost/index.htm
[error] [client 127.0.0.1] \t(Maybe you should just omit the defined()?)\r, referer: http://localhost/index.htm
[error] [client 127.0.0.1] defined(%hash) is deprecated at c:/Program Files/Apache Group/Apache2/cgi-bin/jcode.pl line 693.\r, referer: http://localhost/index.htm
[error] [client 127.0.0.1] \t(Maybe you should just omit the defined()?)\r, referer: http://localhost/index.htm
そこで、jcode.plの該当行近辺を見ると下記のようでした。
683: local(*s, $n) = @_;
684: &init_z2h_euc unless defined %z2h_euc;
685: $s =~ s/($re_euc_c|$re_euc_kana)/
692: local(*s, $n) = @_;
693: &init_z2h_sjis unless defined %z2h_sjis;
694: $s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) : $1/geo;
このエラーとgifが表示されないのとは関係が無いかも知れませんが、何かの手掛かりとなれば、ありがたいです。
ちなみに、jcode.plのバージョンは2.13です。
よろしく、お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
dos変数の%~dp0は powershellで...
-
readdir()で得られるファイル・...
-
FindFirstFileとFindNextFileで...
-
batファイルでrenameができませ...
-
ディレクトリ内CSVデータをすべ...
-
コマンド「dir」の結果を、テキ...
-
ファイル名の文字コード(?)と...
-
バッチファイルの作り方(CSV→...
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
VBAコードを張り付け後のエクセ...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
データの日付でソートをしたい
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
VBAでCSVファイルの特定行を書...
-
Perl エラーログを指定の場所...
-
PerlからのCSV出力
-
MATLAB グローバル変数の宣言
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
FindFirstFileとFindNextFileで...
-
パスから最後のディレクトリだ...
-
vba dir の相対パス
-
dos変数の%~dp0は powershellで...
-
ディレクトリ名を取得したい
-
readdir()で得られるファイル・...
-
LinuxのC言語で、ファイル名の...
-
サーバーにある特定の拡張子フ...
-
makefileでファイルをコピー(...
-
Perlで フォルダ内の全て...
-
chdirがうまくできない
-
指定したフォルダにアップロード
-
下のディレクトリ(3つ)に含ま...
-
複数ファイルの読み込みについて
-
Perl 特定のフォルダ以外削除
-
find関数が1階層(カレントディ...
-
Perlについて
-
一定時間が経過したフォルダの削除
おすすめ情報