• ベストアンサー

RedHat Linux9のWebサーバーでのPerlの設定

RedHat Linux9でWebサーバーをつくり公開しています。 今度、Perlを使ってCGIプログラムもアップしたいと思っています。しかし、RedHat Linux9でのPerlの設定が分かりません。私の持っている本ではPHPの設定なら載っていたのですが、Perlは載っていません。WEB上で設定方法を探して見たのですが見つかりませんでした。 どなたかPerlの設定方法を教えて下さい。 あと、RedHat Linux9ならPerlは標準で入っていますよね。。どこを見れば分かるのでしょうか。。

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

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.9

ほぼゴールが近いので,これで最後にします. > もう、万策尽きましたでしょうか。。 いいえ.何がおこったかは予想がつきます. 私がこれまでに挙げたチェック項目を再度すべて確認してください. ヒント: dos2unixで状態が変化しました.再度あることを行う必要があります

ponsuke777
質問者

お礼

cat test.cgi | nkf -Se (シフトJISをEUCに変換) というのもやってみましたがだめでした。。

ponsuke777
質問者

補足

ほぼゴールが近いのでしょうか? dos2nuixについて調べてみました。 dos2unixは、MS-DOS形式のテキストファイルをUNIX形式にする。つまり、dos2unix.pl 文字コード(漢字コード)をEUCへ,改行コード(行末コード)を\nへ変換する。 とありました。 前回の時にdos2unix < DOS_FILE >UNIX_FILE と実行したのでUNIX形式に変わった訳ですよね。 でも、WEBを表示すると、エラーになってしまいましたが。 >再度あることを行う必要があります とありましたが、それは何でしょうか。。 ちょっと分からないのですが。。教えて頂けると有り難いです。

その他の回答 (8)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.8

この際ですから,man を使うことを覚えてください. $ man rpm > CGI works Good.のcgiプログラムを動かしてみましたが、 > 先程と同じ状態でした。。 改行コードは大丈夫ですか? cat -v test.cgi とやって,行末に ^M がついてるようならアウト.dos2unixしましょう.

ponsuke777
質問者

補足

別のPCで、同じLinuxをインストールしているものがあり、httpd.confをいじってなかったので、そこからフロッピーでコピーしてきてしまいました。。(^^; 同じことですよね。。 cat -v test.cgi とやったら、^M が一杯、でてきました。ですので、test.cgiがあるカレントディレクトリで、 dos2unix test.cgi とやってみました。(入力としては$はいらないんですよね。。) すると、^Mがなくなりました。 しかし、WEB上で、 http://www.homepage.co.jp/cgi/web_form/test.cgi とやりましたが、前回と同じエラー表示でした。 もう、万策尽きましたでしょうか。。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.7

すみません.#6のスクリプトに誤植ありです. #!/usr/bin/perl print<<EOF; Content-type: text/html <HTML><BODY>CGI works Good.</BODY></HTML> EOF

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.6

OSの再インストールは不要です. httpd.confを元に戻せばいいだけだし,うっかりバックアップしてないということなら,最悪でもhttpdのみ再インストールすればいい. /var/www/cgi-bin 以下なら,httpd.confはいじらなくていいというのはすでに書いたとおり. これは十中八九,スクリプト側の問題ですね. いきなり大きなCGIを動かそうとしてるみたいですが,普通は,問題の切り分けのために,簡単なテストスクリプトを動かしてみるものです. httpd.confを編集前の状態に戻して,httpdを再起動したあと, ------------------------- #/usr/bin/perl print<<EOF Content-type: text/html <HTML><BODY>CGI works Good.</BODY></HTML> EOF ------------------------- という簡単なスクリプトを /ver/www/cgi-bin/ に置いて,chmod 755 して,一応 perl -c で文法チェックして,OKならブラウザでアクセスしてみてください.うまく動けば設定には問題ありません. > Premature end of script headers このエラーは改行コードがおかしいときに良くでます. $ dos2unix webform.cgi とやって,改行コードを変換してみてください. それから,これがどこかで配布されているCGIなら,設置方法についてのドキュメントがあるはずです. 関連ファイルの配置やパーミション設定に問題が無いか,良く確かめてください.

ponsuke777
質問者

お礼

できました。test.cgiはあくまでテストですものね。 (^^; 何度もご回答を頂き、ありがとうございました。 皆さんもありがとうございました!!

ponsuke777
質問者

補足

ありがとうございます。httpd.confを元に戻そうとしたのですが、バックアップを取らなかったので、httpdを再インストールしようと思います。 しかし、 rpm -ihv httpd-2.0.40-21.i386.rpm rpm -ihv indexhtml-9-3.noach.rpm とやったのですが、インストールされています、というような画面がでていて、 取り合えず処理できるのですが、ファイルが変更されていません。 上書きインストールってどうやるんでしょうか。。 ちなみに、今の状態で、CGI works Good.のcgiプログラムを動かしてみましたが、 先程と同じ状態でした。。

noname#27115
noname#27115
回答No.5

もし、いろいろいじっていて、それが動作しない原因であればRHL9を再インストールされてはどうでしょうか? うちの場合、インストールして、No.2 の 手順でhttpd.confを書き換え、lokkit で www(Port80)をあけて、終わりです。それでユーザディレクトリにて動いています。 もちろんフォルダやファイルのパーミッション設定はいりますけどね。

回答No.4

perlの設定につては理解されたのでしょうか? mod_perl(apacheのモジュール)を使用する場合には、 LoadModule mod_perl /usr/libexec/apache/mod_perl.so AddModule mod_perl.c としていしますが、 CGIとして使うなら(つまりコマンドライン版perlを使う場合には)設定は不要です。 最近は、LoadModule指示子の代わりに /etc/httpd/conf.d/perl.confで指定するようです。 何を記述するのかはわかりません。 記述内容まで触れているのはみあたりませんでしたが、'perl.conf'で検索すれば 何件かヒットします。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

「perlで書かれたCGIを利用したい」ということは理解できました. CGIスクリプトを /var/www/cgi-bin/ 以下に置けば,何一つ設定をいじらずとも, http://hogehoge/cgi-bin/harehore.cgi で,CGIが動作するはずです. 違うことをおやりになりたいのならば,この質問では情報ゼロです.最低でも以下の情報を書いてください. ・CGIを置いたディレクトリ ・ブラウザに入力したURL ・エラーメッセージの正確な内容

ponsuke777
質問者

補足

・CGIを置いたディレクトリ /var/www/cgi-bin/ ・ブラウザに入力したURL http://www.homepage.co.jp/cgi-bin/toi_form/webform.cgi ・エラーメッセージの正確な内容 Server error! The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: webform.cgi If you think this is a server error, please contact the webmaster Error 500 www.homepage.co.jp Thu Aug 21 16:04:19 2003 Apache/2.0.40 (Red Hat Linux)

noname#27115
noname#27115
回答No.2

CGIが動かないというのであれば、、、 /etc/httpd/conf/httpd.conf に対して。。。 まず、Optionsに ExecCGI Includes 追加します。 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI Includes <Limit GET POST OPTIONS> Order allow,deny </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> で、、、下をアンコメントします。 AddHandler cgi-script .cgi AddHandler send-as-is asis AddHandler type-map var AddOutputFilter INCLUDES .shtml

ponsuke777
質問者

補足

ありがとうございます!! 上記の処理をしてみました。最後に、/etc/rc.d/init.d/httpd reload も実行して、再読み込みもしました。 しかし、まだ動かないですーー。 ちなみに、 <Limit GET POST OPTIONS> Order allow,deny </Limit> となっていましたが、 <Limit GET POST OPTIONS> Order allow,deny Allow form all </Limit> でいいんですよね。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

Perlの設定とは,どういう意味なのかわかりませんが,インストールされているかどうかは, rpm -q perl でわかります. ちなみに,インストールパスは,/usr/bin/perl です.

ponsuke777
質問者

補足

ありがとうございました。 Perl-5.8.0.88 でした。 でも、Perlの設定がまだできません。 Perlの設定というのは、回答No.2の人のようなことです。

関連するQ&A

  • Linuxサーバーのcgi-binの中のgifやindex.htmが表示されない

    RedHat Linux9でWebサーバーをつくり、Perlを使ってCGIプログラムもアップしています。しかし、CGIプログラムは動いているのですが、cgi-binの中に入っているフォルダのgifファイルやindex.htmのファイルが表示されません。何が原因でしょうか。。 設定は特にいじってないです。

  • dos2unix(コード変換)をしなくてもも済むLinuxの設定

    RedHat Linux9でWebサーバーをつくり、Perlを使ったCGIプログラムもアップしています。しかし、CGIプログラムはWindowsで作成し、Linuxにアップしているので、そのままだとコードが違い表示されないので、 dos2unix < DOS_FILE >UNIX_FILE とLinux側でやってコードを変換しています。 これをいちいちやらないようにするためにはどうすれば良いのでしょうか。 何かをLinuxにインストールするなどしたら大丈夫になりますか?

  • Linux Fedora core2のwebサーバー

    Linux Fedora core2のwebサーバーで、CGIを動かしたいのですが、上手く行きません。perlを実行するプログラムもインストールしてあるのですが、どうしても上手く行かず、ソースをブラウザの表示します。 どうやったら、CGIを動かせるのでしょうか?

  • redhat9のwebサーバでのCGI設定

    redhat9でwebサーバを構築しているのですが、アパッチは立ち上げたのですがCGIがどうもうまくいきません。どーしたらいいのでしょうか?お願いします。

  • Red Hat Linux9のサーバーの設定

    この間まで、Windowsでサーバーを公開していたのですが、 速度が遅くCGIを動かすとダウンしてしまうので、 Linuxに変えました。 それで、マイパソにRed Hat Linux9を導入してみたんですけど、、 サーバーの設定の仕方が良く分かりません。 あと、CGIプログラムを動かしたいのですが、 それもどうやるか分かりません。

  • php、cgi(perl)をlinuxに移行

    php、perl初心者です。 現在、windowsサーバーからlinuxサーバーに移行しようとしていますが、 widowsサーバーで動作していたphp、cgiが動作してくれません。 プログラムはDB接続情報以外は全く変更していないのですが、 http 500 内部サーバーエラーがでてしまいます。 ちなみにperl、php、MySQLのバージョンは以下となります。 perl : 5 php : 5.2.17 MySQL : 5.1.45 大変情報が少なく、申し訳ありませんが、 どのあたりに気をつけなければならないのかご教授していただけないでしょうか?

    • ベストアンサー
    • PHP
  • VINE LINUXサーバーでCGIプログラムを動かしたい

    最近、デモ用の社内サーバーとして、VINE LINUX 2.1.5 の入ったPCをたてました。 クライアントはWindowsXPです。いくつかの社内用のプログラムを動かしています。 CGIプログラムを使用したいのですが、どのようにしたら良いでしょうか。 社内サーバーではなく、会社のホームページを表示させているサーバーは、レンタルサーバーで、CGIを使用しているので、CGIのプログラム自体は、自分でできます。 でも、CGIを使用する際の、サーバーの方の設定は分からないのですが。。 htmlを表示させ、CGIを動かしたみたのですが、CGIプログラムの内容がそのまま 表示されてしまいました。Perlをインストールするのではないかと思うのですが。。 だとしたら、VINE LINUX 2.1.5用のPerlのソフトはどこのサイトでダウンロードしてきたら良いでしょうか?

  • ApacheとPerlを別のサーバーに

    以下のような構成は可能でしょうか? 両方ともUNIXサーバーです。 Webサーバー(IP:192.168.0.1)と、 APLサーバー(IP:192.168.0.2)があり、Webサーバーには、Apacheを入れ、APLサーバーには、Perlを入れます。 Webサーバーは、HTML(CGI)を表示する画面機能のみ、APLサーバーにはCGI(Perl)のプログラム(この中でシェルをキックしたりもします)をおきます。 このようにWebサーバーでAPLサーバーのCGIを起動することは可能でしょうか? 会社の上司からの注文なんですが、APLサーバーにはapacheを入れることは不可。WebサーバーにCGI(Perl)を置くとAPLサーバーで起動するシェルをキックするプログラムや、計算結果などをいちいちリモート(rsh、rcpコマンドなど)で送らなければいけないので不可。とのことです。 このような構成が可能である場合の設定の仕方、また不可能であれば、それを可能にするための方法など、ご教授いただければと思います。 よろしくお願いいたします。

  • Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.4

     長文になります。すみません_(._.)_  今回は、仕様が少し変わりました(^^;  前回までは、RedHatについているhttpdを使用していましたが、これに問題があるのかな?と思い、Apacheをインストールしました。(&RedHat9.0もクリーンインストール)  一通りの設定を終え見てみると、HPはトップ・ユーザディレクトリとも表示されるものの、cgiはやっぱり出ず、次の文が出ました。 Forbidden You don't have permission to access /~Username/top/bbs/fbbs/ezbbs.cgi on this server. --------------------------------------------------------------------------- Apache/2.0.46 (Unix) Server at www.hogehoge.net Port 80 (ドメイン伏せさせていただきます_(._.)_) したいことは、ホーム(www.hogehoge.net)以下、どんなディレクトリ名でもCGI・SSLの使用を許可する(ユーザディレクトリを含む)。ということです。(プロバイダのよう、かな?) よろしくお願いします。_(._.)_ 前質問 Pert.1 Red Hat Linux 9.0 でWebを公開したのですが・・・ http://oshiete1.goo.ne.jp/kotaeru.php3?q=614762 Pert.2 Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.2 http://oshiete1.goo.ne.jp/kotaeru.php3?q=617184 Pert.3 Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.3 http://oshiete1.goo.ne.jp/kotaeru.php3?q=618685 参考にしたHP http://www.apache.jp/docs/howto/cgi.html#scriptalias http://acorn.zive.net/~oyaji/www/apache_linux.htm http://oshiete1.goo.ne.jp/kotaeru.php3?q=602630

  • RedHatでLAN内サーバー

    Linux初心者です。「自宅サーバー for Linux」という入門者用の本を買ってきて、付属のRedHat 8.0を自作のセレロン400MHzマシンにインストールしました。  自分としてはまず自宅のLAN内だけのウェブサーバーにして色々と試してから公開しようかなと思っています。ところが本では正規のドメインを取得してインターネットに接続することを前提に解説してあり、RedHatの「ネットワーク設定」メニュー内の「ホスト」「DNS」欄、「Apache設定」内の「サーバ名」欄等に全て"完全修飾ドメイン名"を記入するように書いてあります。  ここをローカルなLAN内だけでのサーバー設定にしようと思って色々と変えて設定してみているのですが、どう設定を変えてみても、LANにぶら下がっているもう一台のWindows98マシンのブラウザでアクセスできず困っています。  質問が回りくどくなってしまって大変恐縮ですが、この辺をどう設定すれば良いのか、どなたかご教授いただけませんでしょうか。 ●LANからルーター経由でケーブルモデムに接続しています。 ●ルーター自身のDHCPは192.168.1.1、RedHat機は192.168.1.86を固定で割り振っています。 ●RedHat機、Windows98機共、LANの外側のインターネットへはルーター経由で問題なくアクセスできています。 ●/var/www/html/にはダミーのindex.htmlを置いてあるのですが、Windows機のブラウザで「http://198.168.1.86/」と指定してもtime-outになってしまい、index.htmlが表示されません。