• ベストアンサー

Perlのエラーについて

PerlでInternal Server Errorが表示します。 Perlのインストール、Apacheのインストール、Apacheの設定をしました。 Perlのバージョンは5.8.7.813です。 プロバイダはCGIのご利用に関する情報 Perl 利用できる(Ver5.10.1)です。 Perlをプロバイダのサーバーへアップロードするのですか? Internal Server Errorについてです。

  • Perl
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6637/9404)
回答No.1

まずはCGIの仕組みでいわゆる「Hello world」プログラムを動かせるようにしましょう。 >Hello World with plain CGI >https://perlmaven.com/hello-world-with-plain-cgi ただブラウザ上に文字を表示する、それだけのことに、最低限以下のような設定が必要です。 apacheサーバとperl言語はインストールできているとして、 ・httpでアクセスできるところにCGIプログラムを置く必要があります ・CGIフォルダあるいは実行権限が必要です ・CGIのmime-type設定が必要です ・CGIファイル1行目の「#!/usr/bin/perl」を実際のperlパスにする必要があります ・「print "Content-type: text/html\n\n";」は何を出力する場合にも必要ですので必ず最初にprintして下さい 以上のことの、どれが間違っていても「Internal Server Error」になります。 ですから最低限、hello world が動かせるようになるまでサーバ設定を調整してください。

関連するQ&A

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。ここのカテゴリーでよいのか悩みましたが、とりあえずよろしくお願いします。

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。よろしくお願いします。質問がここのカテゴリーでよかったのかわかりませんでした が、サーバーと書いてあったのでここに投稿しました。間違ってたらすいません。

  • phpdev4.3.0のperlの設定方法

    Windowsに PHP、MySQL、Apacheを簡単にインストールできるphpdev4.3.0をインストールしました。 パールはActivePerl 5.8.6.811をインストールしました。 PHPは正常に表示されるのですが、cgiが「500 Internal Server Error」が出て表示されません。 phpdevはc:\phpdev、パールはc:\Perlにインストールしました。 OSはMEです。それまではAN-HTTPを使っていました。念のためソフトウェアのレジストリも削除しました。 パールを正常に使えるようにするには、 c:\phpdev\Apache\conf\httpd.confファイルをいじればいいのでしょうか? ファイルを見てもよくわかりませんでした。 パールの最初の記述「#!/usr/bin/perl」に問題があるのでしょうか? phpdevはアンインストーラーが付いてないので、削除の方法がよくわからないし、AN-HTTPと同時に起動することも出来ないのでパールのローカルテストが出来なくて困っています。 Apacheの最新版をインストールしてみたのですが、上書きされずphpdevの古いバージョンが起動します。Apacheの最新版のアンインストーラを実行してもphpdevの古いバージョンが残ってしまいます。 パールを使えるように設定する方法、あるいはphpdevを完全に削除する方法を教えて下さい。 お願いします。

    • ベストアンサー
    • Perl
  • 500 Internal Server Error

    500 Internal Server Errorが出ます。 サーバ:CentOS6.4 サーバ側の文字コード:UTF-8 perlのパス:/usr/bin/perl index.cgiの文字コード:LF (サーバ上で直接作成) index.cgiのパーミッション:777 (パーミッションの問題を避けるためわざと、777に設定) ここで、サーバ上で直接実行 perl /var/www/html/index.cgi すると、正しく処理の結果が返ってきてエラーは出ません。 しかし、クライアントのブラウザでindex.cgiにアクセスすると、500 Internal Server Errorが出ます。 なお、index.cgiを設置するディレクトリはApacheで以下のように設定しcgiスクリプトを有効にしています。 <Directory “/var/www/html”> Options FollowSymLinks ExecCGI </Directory> AddHandler cgi-script .cgi .pl #AddDefaultCharset UTF-8 ******************************************************* 【/var/www/html/index.cgi】 #!/usr/bin/perl print "Content-type: text/html"; print "<html>"; print "<body>"; print "<p>"; print "CGI"; print "</p>"; print "</body>"; print "</html>"; スクリプトの文法に問題があれば、サーバ上で直接実行させた時点でエラーを吐きそうですし、 パーミッションは777にしていますし、Apacheの設定もcgiを有効にしているので 他に500 Internal Server Errorが出る原因が掴めません。 Apacheの設定で、#AddDefaultCharset UTF-8 として文字セットを無効にした場合は CGIスクリプトの方で何か追加してやらないと、文字化け以前の問題で必ず500 Internal Server Errorを吐くんですかね? ご指導のほどよろしくお願い致します。

    • ベストアンサー
    • CGI
  • mod_perlのキャッシュについて

    はじめまして、isi0033と言います。 下記のご回答宜しくお願い致します。 現在、レンタルサーバを借りてapache,mod_perlでシステムを構築しているのですが、潜在的なバグをもったプログラムにアクセスし、一度でも、ブラウザに『Internal Server Error』を表示されると、それがキャッシュとして残ってしまい、プログラムのバグを修正しても、『Internal Server Error』が表示されたりします。 何度かリロードすると正しく表示されるのですが、 とても安心して公開できません。 レンタルサーバでは、Apache::Registryが使われているようで、mod_perlについて色々調べると、Perlプログラムを読込んでコンパイルしたものをメモリにキャッシュするとありました。 このメモリをいったんクリアする設定or方法等、ご存知の人がいましたら、教えてください。

    • ベストアンサー
    • Perl
  • CGI掲示板アップロード、403エラー

    WEBサイト製作初心者のものです。 Perlで作られたフリーの掲示板をダウンロード、 借りたレンタルサーバーにcPanelをつかってCgi-bin にアップロード。 このようにすれば、レンタルサーバーにアクセス、 Index of のcgi-binを選択すれば、掲示板が表示されるはずですが 403 アクセス権のエラーと表示されてしまいます (cPanel付属のCRMソフトはインストール後Index ofから選択すれば正常に表示されます) 3つの条件 Perlのバージョン、アップロード先ディレクトリ、 フォルダごとのパーミッション設定は、推奨設定どおりになってます。 どうしてこのエラーが出るのでしょうか?

    • ベストアンサー
    • Perl
  • Perlスクリプトが、ローカルでは実行できるが、HTTP経由では実行できない

    現在Perlスクリプトを作成し サーバにアップしました。 SSHでサーバにログインし #perl a.cgi と実行したところ(CGIとして動作させるため。中身はPerlスクリプト) Content-type: text/html <html> <body> あああああ </body> </html> のようなメッセージが表示され正常に動作しているとおもいます。 しかし、 http://www.hoge.com/a.cgi をURLとしてブラウザ上で実行すると 500 Internal Server Error になります。 パーミッションは755で正常 Perlのパスは#!/usr/bin/perlとしており、これも正常です。 文字コードはeuc-jp 改行コードLF サーバはApache/1.3.33 Perlバージョンは5.8.4 自分のパソコン上でperl+HTTPサーバ(httpd)を使うと HTMLふぁいるとして出力されます。 サーバ上でHTTPを使ってアクセスしたときのみエラーとなります。 このような現象が起こるのですが原因がわかりません。 お願いします。

    • ベストアンサー
    • Perl
  • perlパス

    Windows2000機でWebServerを建てたのですが、CGIが認識しません。 WEBサーバーのクライアントソフトはApacheで 普通にHTMLは見れています。 perlをインストールした場所は C:\usr\local で VerはActivePerl 5.8.8.822 for Windows (x86)です。 場所は↑なのでCGIファイルのperlのパスはそのままいじらず、 perlのパスは#!/usr/local/bin/perl です。 一応#!C:/~以下   もやりましたがだめで、 CGIのテキストが表示されています。 色々調べてやったのですがどうもうまくいかず 教えていただけませんか

  • PerlでInternal CGI Error Malformed Error

    こんばんわ。 皆様お忙しいところかと思いますが、 なにとぞお助けいただけますようお願いいたします。 環境 Perl5.0.8.2 VineLinux3.2 Apache1.3.33 皆様方から見るとなんでそんなことしてるの!? と思われると思いますが、現在、perlにて、 メールフォームを作ろうと考えています。 ただperlからのメールフォームは、sendmailを 利用したものが多いのですが、sendmailが インストールできない環境な為、 Javaにてメール送信用のコマンドを作成しまして、 ファイルパスをパラメータとして渡すことで、 メールが送信出来るにはなりました。 (文字化けなどが発生していますが(汗)) 一々forkするのはお勧めできないと言うのは 置いておいて、Internal CGIErrorが発生してしまい、 よく解決方法がわかりません。(perl初心者です) Apacheのerror.logには以下のメッセージが出ています。 mailformed header from script. Bad header=0: 切り分けのために以下のコードだけにして実行してみたのですが、動作は正しいのですが、internal CGI error が発生してしまいます。 $status = system($COMMAND); print "Content-Type:text/html\n\n"; print "success"; hello perlではこんな感じで表示できているので、 system関数自体がそもそも駄目なのでしょうか・・・。 申し訳ございませんがご教示ください。 以上

    • ベストアンサー
    • Perl
  • NTでapacheとperlをインストールしてCGIテスト

    WINDOWS NTの環境でネットに繋がっていない状態でCGIテストをしようと、apache_1_3_12_win32.exe (Apache 1.3.12 for Win32) とActivePerl 623をダウンロードしセットアップしました。 Apacheの動作確認までできました。 ところが、CGIが動きません。 DOSで「xx.pl」は動いているのに、「xx.cgi」をテストしようとブラウザでみてもエラーが出てしまいます。 セットアップした2つの場所は、c:\www\perl\ と、c:\Apache\です。 何が間違っているのでしょうか? どなたか詳しく教えて頂ける方がいらっしゃいましたら、大変ありがたいです。 ブラウザのエラーは 「Internet Server Error The server encountered an internal error or misconfiguration and was unable to complete your request~」というような表示です。 また違う者が前にsendmailを入れたようなのですが、その中にもapacheが入っていました。 またperlもcドライブに入っているのですが、これはまずいでしょうか? お助けください。よろしくお願いします。

専門家に質問してみよう