• 締切済み

ubuntuでサーバーを立てているのですがうまくいきません。

Linux初心者です。よろしくお願い致します。 ubuntuでwebサーバーをたてているのですがうまくいきません。 現状としては 一、apache2を入れています。 二、index.htmlではローカルIP、ドメインともに見れます。 三、dir.confでAddHandler.cgiをindex.htmlよりも優先順位を高くしたのち、二で接続すると500エラーではじかれます。 四、tail -f で確認すると ・Premature end of script headers: AddHandler.cgi と表示されます。 五、パーミッションはAddHandler.cgiが775、index.htmlが664です。 AddHandler.cgiの中身は以下の通りです。 #! /use/lib/perl use strict; use warnings; print 'index.html'->output; exit; 宜しくご指導鞭撻お願い致します。

みんなの回答

回答No.3

ANo.1です。 print文は、文字列を出力します。 print "index.html"; は[index.html]という文字列を出力します。 print 'index.html'->output; は、 'index.html'モジュールの output関数の結果を出力します。 index.html のファイルの中身を出力するのであれば、 以下3つの方法があります。 (1)システム関数を使って system("cat index.html"); とする。 (2)ファイルをオープンして出力する。   open(IN,"<index.html");   while ( <IN >) {     print;   } (3) モジュール File::Cat を使う。 http://search.cpan.org/~fimm/File-Cat-1.2/Cat.pm まずは、perlの基礎から勉強されることをお勧めします。

参考URL:
http://allabout.co.jp/internet/cgiperl/closeup/CU20030202A/
keeeeeeeen
質問者

お礼

Tanigucchiさん回答ありがとうございます。 perlは現在勉強中です。 perlのご指摘ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

ANo.1です。 まずは、ローカルで perl AddHandler.cgi を実行してみて AddHandler.cgiが正常に動くかご確認ください。 貴環境で print 'index.html'->output; で何が出力されるのかが今ひとつわかりませんが…

keeeeeeeen
質問者

補足

Tanigucchiさんまたしても回答ありがとうございました。 index.htmlというテンプレートを表示したいと思っていたのですが…。 ちなみにperl AddHandler.cgiを実行すると Can't locate object method "output" via packageindex.html" (perhaps you forgot to load "index.html"?) at AddHandler.cgi line 8. と出ました。 loadし忘れみたいなエラーなのですが、ロードとは一つひとつファイルをロードするということなのでしょうか? 重ねがさね質問で大変恐縮です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

HTTPヘッダが無いようですので print "Content-type: text/html\n\n"; を最初に出力するようにしてみては如何でしょう? 参考URLは、500エラーの対処です。

参考URL:
http://allabout.co.jp/internet/cgiperl/subject/msubsub_series_cgiperl04.htm
keeeeeeeen
質問者

補足

Tanigucchiさん早速の回答ありがとうございます。 さっそくAddHandler.cgiのprint 'index.html'->output;の前に入れて見ましたが変わりませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 自宅サーバーの構築がうまくいきません。

    Linux初心者です。よろしくお願い致します。 webサーバーを公開しようとしているのですがうまくいきません。 OSはubuntuでapacheは2系です。 ルーターを介してindex.htmlをドメインで表示すること(http://ドメイン名)は可能なのですが、AddHandler.cgiにすると500エラーではじかれてしまいます。 以下はtail -fのコマンドで表示される文言です。 ・(2)No such file or directory: exec of 'ディレクトリ/AddHandler.cgi' failed ・Premature end of script headers: AddHandler.cgi 何が原因かわからないのでどなたご指導鞭撻の程よろしくお願い致します。

  • 【apache】httpd.confのAddHandlerについて

    掲示板利用させていただきます。 apacheとphpの連携を行う際、httpd.confのAddHandlerを以下のように設定すると、httpでphpを呼び出した際、以下のエラーがでます。 ●設定内容 AddHandler cgi-script .cgi .php ●エラー内容 Premature end of script headers 以下のように設定し直すと、正常に利用できるようになります。 ●設定内容 AddHandler cgi-script .cgi phpとcgiはイコールだと思っていたのですが、違うのでしょうか?? どなたかご教示ください。 よろしくお願いします。

  • CGIが・・・いったい何が問題でしょうか?

    皆様よろしくお願いいたします。 以下の構成のディレクトリをvar/www/htmlに置き localhost/auct/index.cgiとしてindex.cgiファイルにアクセスしようといたしたのですが、500internal server errorとなり(エラーログ; premature end of script headers; index.cgi)、アクセスできません。 index.cgiにアクセスするとstart.shtmlが開く設定になっています。 なお、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 自分でもかなり調べたり、聞いたりしたのですが解決に至りませんのでどうかご助力お願いいたします。 ....├ [auct] ...........├ [ pl ] ...................├ [ lib ] ...................├ ap.cgi ...................├ category.cgi ...................├ cgi-lib.pl ...................├ comu.cgi ...................├ config.cgi ...................├ image.pl ...................├ index.html ...................├ jcode.pl ...................├ mail.cgi ...................├ mng.cgi ...................├ show.cgi ...................├ usr.cgi ...................└ wwwis.pl ...........├ auction.cgi ...........├ count_down.cgi ...........├ cron.cgi ...........├ index.cgi ...........├ master.cgi ...........├ search.cgi ...........├ start.shtml ...........└ temp.cgi 全てWindowsからasciiで転送してperlのパスも確認済み。 パーミッションはすべて755。 Windowsのapacheでは正常に動作。 httpd.confの設定; <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルト。

    • 締切済み
    • CGI
  • Server error! Error 500

    RedHat7.3, apache-2でCGIが動くようにしたいのですが、 httpd.confをいじったりいろいろやってるのですが Server error! Premature end of script headers: tmp.cgi Error 500 と言われてしまいます。 Object not found!(Error404)ではないのでcgiファイルがあることは認識されてるようですが、 ”早すぎる終わり”をどうやったら回避できますか? 教えてください。

  • 文法はあってるのにサーバーエラーが出る

    perlで構文チェックをしたところ、OKが出たので、 アパッチにて実行したところサーバエラーがでました。 調べたところ、以下のようなエラーが出ましたが、これは、サブルーチンや、ライブラリが呼出されていないのでしょうか?どのように対処すればいいか教えてください。 Premature end of script headers: c:/www/public_html/subsub.cgi Undefined subroutine &jcode::convent called at c:\WWW\PUBLIC~1\SUBSUB.CGI line 8. Premature end of script headers: c:/www/public_html/okikae.cgi Can't locate cgi-bin.pl in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at c:\WWW\PUBLIC~1\OKIKAE.CGI line 3.

    • 締切済み
    • CGI
  • CGIが使えないのはなぜ?

    こんにちは。 現在Redhat8を使用して、サーバーを作っています。apacheを起動してサイトが表示できるまではOKだったのですが、CGIを使う段階でつまづいています。 httpd.confは様々なサイトを見てそのとおりに編集したのですが、いざCGIを起動するとServerError!となります。Error_logを見ると↓のような妙な文章でした。Permissionなら分かるのですが、、これは何でしょう。 Premature end of script headers: XXX.cgi CGIの先頭のPerl指定は #!/usr/bin/perl にしてあります。何が悪いのか分からず途方にくれています。何かチェックする部分があればどうかご指摘ください。お願いします。パーミッションの設定は完了しており、CGIスクリプト自体も先頭以外はいじっていません。 RedHat8.0 Apache2.0 /home/www/html にHTMLファイル /home/www/cgi-bin にCGIスクリプト ----------------以下関係のありそうなhttpd.confの抜粋 ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> Options ExecCGI Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi

  • LinuxのapacheでCGIが動かない

    RedHatLinux7でイントラネットでWebサーバーを構築しました(apache)で、CGIを動かしたいのですが、動きません。あるサイトで「httpd.conf の AddHandler cgi-script .cgiを生かせばいい」となっていたのでそうしましたが、まだ動きません。あと何を設定すれば良いのですか?(CGIのパーミッションはちゃんとしています。)httpd.confにCGIの記述が他にもありましたが意味がわからずそのままにしています。

  • kmf_cgiについてですが・・・

    『kmf_cgi 10.7』の『ReadMe』に ■設置方法 パーミッションを、index.cgiは[755]、perl-lib.plは[644]に設定 とありました。 実際に設定しようと思ったのですが、 『index.cgi』、『perl-lib.pl』のそれぞれの どこにパーミッションという欄があるのかわかりません。 誰かわかる方、教えていただけませんか??

  • use strictとグロブ?

    cgi-lib.plのReadParseの引数でParamグロブを使った場合、 use strict;をすると、必ず以下のエラーが表示されます。 use strictはそのまま使いたく、他の部分も厳密にチェックしたいのですが 何かよい方法はありますか? use strict; require 'cgi-lib.pl'; &ReadParse(*Param); my $MODE = $Param{'MODE'}; <----- errro Variable "%Param" is not imported at

    • ベストアンサー
    • Perl
  • 500エラーの解決方法を教えていただきたいです。

    数日前から、ワードプレスで運用しているサイトが、 突然500エラーで表示されなくなってしまい、困っております。 500エラーが発生する直前には特に何も操作は行っておらず、 エラーログを見ると 「Premature end of script headers: index.php」 と書かれています。 ネットで調べてみると、 「CGIがどうとか、パーミッションを777」 とかいろいろ書いてあるんですが、私自身が無知であるため、 恥ずかしながら全く意味が分からない状態です。 大変お手数ですが、解決方法が分かる方がいらっしゃいましたら、 教えていただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • グランツのベッドフレームを購入したが、きつい臭いがあり寝室に入れないほどだった。交換後は臭いはほぼなくなったが、有害物質のホルムアルデヒドの懸念がある。
  • グランツのベッドフレームの信頼性については不明。ホルムアルデヒドが原因で癌になる可能性についても心配している。
  • ホルムアルデヒドの有害性やグランツのベッドフレームの安全性について詳しい方のアドバイスを求めている。
回答を見る