• 締切済み

ローカルサーバーバでヒアドキュメント

perl5で、ローカルサーバーソフトHTTPDをしようしているんですが、 ヒアドキュメントがどうやってもうまく使用できません。 文法はきちんと書いているんですが、もしかしたら、ローカルサーバーでの設定、Perlのバージョンの問題かと疑いはじめました。 なにか問題点がありますでしょうか

  • Perl
  • 回答数3
  • ありがとう数4

みんなの回答

  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

補足です。 コマンドラインからの実行時には、 perl -w xxx.pl(xxx.plは任意のファイル名) の様に実行して下さい。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.2

補足有り難うございます。 こちらの環境で試しましたが問題なく実行出来ますね。 一応確認なのですが、末尾の「HERE」の後は改行されていますか? もし改行が入っていなかったら入れてみて下さい。 それから、もしtelnetが使えるのでしたらコマンドラインから実行してみて頂けますか。 おかしなところがあればメッセージが出力されると思いますので、御確認下さい。

saru_monmon
質問者

補足

ありがとうございました。 HEREのあとに改行を入れるとなんなく動きました。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

使用出来ないのはヒアドキュメントだけなのでしょうか? 文法的なチェックがしたいので、出来れば該当部分を補足欄にコピー&ペースト(確実なので)して載せて下さい。 よろしくお願いします。

saru_monmon
質問者

補足

たとえば、 #!/usr/local/bin/perl print <<"HERE"; Content-type:text/html <HTML> <BODY>あああ</BODY> </HTML> HERE というスクリプトで、HTMLドキュメントを生成できるはずなんですが、 どうしてもできませんでした。

関連するQ&A

  • ヒアドキュメントが表示されない

    perl初心者です・・ perlを本で学習してる最中なのですが、print文だとブラウザに表示されるのに、ヒアドキュメントで記述するとブラウザに表示されません。 (AN HTTPDサーバーを使用して、起動させています。) 例えば、 #!/usr/bin/perl print "content-type: text/html\n\n"; print "<html><body>"; print "ああ"; print "<br>"; print ("いい","うう","ええ","です"); print "<br>"; print "</body></html>"; ↑この記述だとブラウザに表示されますが、 #!/usr/bin/perl print <<HTML_DOCUMENT; content-type: text/html <html> <body> ああいいううええです </body> </html> HTML_DOCUMENT ↑このようにヒアドキュメントに書き換えてブラウザで表示させると、 サーバーが見つかりませんと表示されます。 ちなみに、本に添付してあるCD-ROMの回答ソースをコピペして表示させてみましたが、同様にサーバーが見つかりませんと表示されます。 ですので、文法には間違いはないと思うので、ANHTTPDサーバーに原因があるのではないかと思われるのですが、何か、ANHTTPDサーバーに設定をする必要があるのでしょうか? 教えてください。 ちなみに、環境windowsXPです。

    • ベストアンサー
    • Perl
  • ヒアドキュメントについて

    まだperlを学びはじめたばかりの初心者です。 よろしくお願いします。 ヒアドキュメントを使用したところ文字化けをするようになってしまいました(特定の文字ではなく全体です)。原因をあれこれ探していたところ、ヒアドキュメント内のHTMLタグの<meta (略) charset=EUC-JP とEUC-JP指定になっているため文字化けしている事がわかりました。 ヒアドキュメントを使用しない場合は、charset=EUC-JP で問題ないのですが、ヒアドキュメントを使用した場合はShift_JIS と指定しないと文字化けしてしまいます。 ファイルの保存形式は、エンコーディングをEUCに、改行タイプをLFにしています。それからMacOS X 10.39を使用して、まだサーバーにはアップせずに、MacOS X 内でのローカル環境で動作確認するようなかたちで作業をしています。 ヒアドキュメント内で EUC-JP と指定すると文字化けしてしまうものなのでしょうか。 それとも何か対処方法などがあるのでしょうか。 まだ初心者という事で何かずれた質問になってしまっているかもしれませんが、ご教授やアドバイスなどをいただけたらと思います。よろしくお願いします。

    • ベストアンサー
    • Perl
  • 特定CGI「だけ」が、ローカル環境で実行できない原因について。(POSTでのフォーム送信はローカル実行不可?)

    こんばんは。 サーバでは問題なく動くCGI(Perl)が ローカルPC環境で動きません。 ローカルのHTMLファイルから呼び出すと CGIファイルがテキストとして表示されます。 しかし、パス関係の間違いはありません。 動かないCGIファイルを「print "Hello!";」などの 単純な文章に書き換え、同じHTMLから呼ぶと動きます。 また、「Perl文法チェックサイト」で チェックしても、文法間違いはありません。 ほかにどういった原因が考えられますでしょうか? ---------------------------------------- なお、ローカルのHTMLでは 「form」にラジオボタンを配置、 「submit」で「POST」送信したうえで その結果によってHTMLを生成出力するようにしています。 ここらへん、まったくよく分かっていないのですが もしかして、こういう送信はローカルでは 実行できないとかあるのでしょうか? 送信部分を削って、HTML出力だけのCGIにすると動きます。 繰り返しますがサーバ上では動作しています。 よろしくお願いいたします。 ---------------------------------------- ◆環境◆ WindowsXP IE6.01 httpd 1.42m  ActivePerl(バージョンの見方が分かりません)

    • ベストアンサー
    • CGI
  • omniHTTPdでのCGIの利用

    windows用のHTTPdのomniHTTPdを使って、HTTPサーバーを立てようとしています。 htmlを表示することは出来ました。が、CGIがうまくいきません、というか設定でわからない箇所があります。 普通、ISPなどのHPサービスでは、CGIを設定する際に #!/user/local/bin/perl と設定しますよね。でもこれが自宅のマシンだとどう設定して良いのかわかりません。 perl.exeは d:\test\httpd\cgi-bin\perl\ の中に入ってます。 omniHTTPdは c:\HTTPD\ の中に入ってます。 HTTPdにアクセスした時のルートが d:\test\httpd\index.html になってます。 CGIはその下の d:\test\httpd\cgi-bin\ に入れようとしています。 ちょっと説明下手でわかりにくいかもしれませんが、よろしくアドバイスお願いします。

  • ローカル環境でのCGIの処理速度が遅いです。

    Xamppをインストールして Apacheとmysql、perlを使用した仮想サーバーをローカル環境に構築しました。 しかし、普通のページ(HTML等)はサクサク表示するのですが、CGIファイルの処理速度がかなり遅いです。 具体的にはMovabletypeを使用しているのですが書き込み、再構築・ブログの管理画面表示など全てに時間がかかる状態です。 現在はレンタルサーバーを借りてそこにもMTをインストールしているのですが、はっきりいってそのレンタルサーバーより2~3倍は遅いです。 私はてっきりローカル環境であればレンタルサーバーと同等、もしくはそれ以上の速度でCGIが実行されると考えていたのですがこういうものなのでしょうか? また、処理速度を早くする方法などはないでしょうか? おわかりの方がおられましたらご教授の程、よろしくお願いします。 ▼PC環境 Windows2000 Pentium4 1.8GHZ メモリ 512MB ▼サーバー環境 Apache HTTPD 2.2.6 MySQL 5.0.45 Perl 5.8.8-2.2.4 ▼使用ソフト Movable Type version 4.01

    • ベストアンサー
    • CGI
  • Perl言語のオンライン文法チェッカーについて

    以前、こちらのサイトで『httpd の1.42pで表示出来ないCGIがあるのですが・・・ 』と質問させていただいたものです。 その時の同じcgiプログラムなのですが、現在もhttpd上では表示できません。サーバー上では問題なく動いています。 今年8月にレンタルサーバーを移行する事になり、念の為、cgiに不具合がないか調べている所です。 しかし、じっくり見直してみたのですが、どうしてもどこがいけないのか見つけ出せません。 そこで、インターネットで調べた所『Perl言語のオンライン文法チェッカー』(http://www.e777.co.jp/perlcw/) というサイトを見つけました。 このサイトでチェックしてみた所、tmp.pl syntax OK と表示されました。 サイト上の説明では、『「tmp.pl syntax OK」と表示された場合は文法的な問題は全くありません。』 と書かれています。 この表示を信頼してもでしょうか? 文法に問題がなければ、サーバー上で暴走する事はないと考えてよいのでしょうか? また、httpd上では表示できないのに、サーバー上では問題なく動く、またPerl言語のオンライン文法チェッカーでも、tmp.pl syntax OK と表示されるというのは、何に問題があると考えたらよいのでしょうか? 皆さん、アドバイス、ご指導のほどよろしくお願い致します。

    • ベストアンサー
    • CGI
  • perlの実行環境について

    perlの実行環境に影響する部分は ■perlのバージョン ■httpd.conf ■perlモジュール 以外にあるのでしょうか。 例えば、phpでいうとphp.iniのような設定ファイルなどです。 ■perlのバージョン ■httpd.conf ■perlモジュール の設定がまったく同じ二つの環境で、 一方で使える関数がもう一方で使えない、ということが以前にありました。 肝心のその関数が何だったかを忘れてしまったのですが。

  • perlでメールフォームを作成したいのですが……

    perlでメールフォームを作成しようとしています。 fakesendmailでフォームデータを送信するように設定していますが、うまくいきません。 perlは動作しているみたいですし、fakesendmailのエラーログも動作しているので、パイプも問題ないと思います。 ですが、設定したメールアドレスの方にフォームデータが送信されません。 受信サーバ、送信サーバ、メールアカウント、パスワードもプロバイダ(フレッツ光)に教えてもらった通り設定しています。 サーバソフトはhttpdです。 何が原因で送信されないのでしょうか? 原因だけでも、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • apache/mod_perlの実行エラーについて

    apacheについて質問です。分かる方、どうぞご教授下さい。 httpd.confにmod_perlの設定を記述しない場合、通常どおりapacheが起動するのですが、以下のようにmod_perlの設定を追記するとapacheがエラーで起動しません。 【mod_perlの設定】 PerlModule ModPerl::Registry PerlRequire /usr/lib/perl5/site_perl/5.8.8/startup.pl <Location /cgi-bin> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader On Options ExecCGI </Location> 【apacheのエラー内容】 /usr/local/apache2/bin/httpd: symbol lookup error: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Apache2/ServerUtil/ServerUtil.so: undefined symbol: ap_get_server_banner httpd.confのmod_perlの設定については、他のサーバーでは問題なく起動していますので、mod_perlのconfigure時の共有ライブラリの設定に不備があるのではと思っているのですがどう設定すればいいのか分かりません。mod_perlのconfigure時のオプションは以下のようになっています。 【mod_perlのconfigure】 perl Makefile.PL \ > MP_USE_STATIC=1 \ > MP_AP_PREFIX=../httpd-2.0.63 \ > MP_AP_CONFIGURE="--prefix=/usr/local/apache2 --with-mpm=prefork" 以下、grep の実行結果です。 [root@colinux mod_perl-2.0.3]# grep -r ap_get_server_banner /usr/lib/* バイナリー・ファイル/usr/lib/httpd/modules/mod_rewrite.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_connect.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_ftp.soは一致しました どんな些細なことでも結構ですので、どうかご教授のほど宜しくお願い致します。 【環境】 fedora6 apache2.0.63 mod_perl2.0.4

  • ローカル環境でのCGIエラー

    ActivePerlとAn HTTPdでWindowsXP HomeEditionのPC上でCGIを動かそうと思っています。 どちらも最新版をダウンロードしてインストールしました。 ActivePerlに関してはegフォルダ下のexample.plで動作確認が取れています。 An HTTPdに関してはhttp://127.0.0.1以下のURLを指定してページが表示されています。 ですが、htmlからcgiを呼び出そうとすると「ページを表示できません」「サーバーが見つからないか、DNS エラーです。」のエラーが出てしまいます。 試しにcgiファイルをフルパスで指定したのですが同じでした。 ちなみに、簡単なCGIプログラムtest.cgiを作成、サーバにアップして動作を確認しましたがローカルではエラーになります。 また、ローカルでコマンドプロンプトにて c:\usr\local\bin\perl c:\プログラムのパス\cgi-bin\test.cgi と入力すると内容を表示します。 コマンドプロンプトでCGIプログラムのあるcgi-binディレクトリに移動して perl -v と入力するとperlのバージョン情報を表示するので、パスは通っていると思われます。 Au HTTPdのerrors.logには Thu Aug 16 19:21:18 2007 Warning: CGI TerminateProcess 2500 error 5 とりあえず、自分で原因を絞れるであろうところはあたってみたつもりですが、何か見落としていることがあるでしょうか? もしかしたらAu HTTPdに問題があるでしょうか?

    • 締切済み
    • CGI