- 締切済み
Apacheの設定に関して
Windowsの環境でApache、CGI、perlを用いた環境を構築 しようと考えています。 色々ホームページを検索してみましたが、詳細に書かれた ページが見つかりませんでした。 (以前はPHPを用いた環境は作成した事はあります。) 参考になるようなページがありましたら教えて下さい。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- leap_day
- ベストアンサー率60% (338/561)
こんにちは 以下をコピペして≪test.cgi≫をSAフォルダに保存してみてください #! c:/perl/bin/perl require './jcode.pl'; &decode; &html; sub html { &header; print "testです\n"; &footer; exit; } #---------------# # HTMLヘッダー # #---------------# sub header { print "Content-type: text/html\n\n"; print <<EOM; <html> <head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> <title>test</title> </head> <body> EOM } #------------------# # HTMLのフッター # #------------------# sub footer { print "</body></html>\n"; } #--------------------# # フォームデコード # #--------------------# sub decode { if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); } else { $buf = $ENV{'QUERY_STRING'}; } undef(%in); my @buf = split(/&/, $buf); foreach (@buf) { my ($key, $val) = split(/=/); $val =~ tr/+/ /; $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; # SJISコード変換 &jcode::convert(\$val, 'sjis'); # エスケープ $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s/</</g; $val =~ s/>/>/g; $val =~ s/\r\n/<br>/g; $val =~ s/\r/<br>/g; $val =~ s/\n/<br>/g; $in{$key} = $val; } } それでブラウザでhttp://127.0.0.1/SA/test.cgi もしくはhttp://localhost/SA/test.cgiと入力してみてください 『testです』とブラウザ表示されると思うのですが・・・ jcord.plは同一ディレクトリ内(SAフォルダ内)に保存してくださいね http://mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html#h1-2 PHPの方もApacheでやっていたのですかね? Apacheのほうでやっててhttd.confの設定だけを変えているのであればPHPファイルを置いているフォルダの方にcgiファイルを置いてみてはどうですか? http://tech.bayashi.net/faq/nodl.html http://sakaguch.com/pastbbs/0035/B0017909.html
- leap_day
- ベストアンサー率60% (338/561)
こんにちは <IfModule mod_userdir.c>の変更をするようには書いていないのでバージョンが違うのかなと思いますけど・・・ 参考になればと思い、以前回答したのを載せておきますね(^^) http://okwave.jp/qa2824758.html cgiファイルの行頭は #!/usr/local/bin/perl ではなく #! c:/perl/bin/perl となります
- ptakeda
- ベストアンサー率53% (7/13)
すこしググってやれば参考URLのようなサイトが見付かると思います。 ここの内容では、不足でしょうか? PHPを用いた環境を作れるのであればそれほど難しくは無いと思います。 ただ、PHPの環境を「XAMPP」とかでお気軽に作っていたのであれば別ですが・・・(私は、お気軽に作りますが・・・外向けのサーバーは作らないので)
補足
ご回答ありがとうございます。 もう少しだけ教えて下さい。 CGIもperlもインストールし、CGIが動いている事は確認できましたが、 CGIを動作させるフォルダを変更したいと考えています。 <IfModule mod_userdir.c> のあたりを変更すれば良いと記述してありましたが、私のapacheの "httd.conf"にはそのような記述がありません。。。 どこを変えたら良いでしょうか。。。。
補足
回答ありがとうございます。 あともう少しのところまできました。 apacheも正常に動作している事が確認されました。 しかし、C:\ApacheGroup\Apache2\htdocsの下にSAというフォルダを 作成し、その中でSAM.cgiというファイルを http://localhost/SA/ SAM.cgiと指定した場合、ファイルが開くのではなく、ダウンロード となってしまいます。 何か設定が間違っているのでしょうか・・・。 教えて下さい。