• ベストアンサー

FreeBSDのperl

自分のPCでCGIが動かずに苦戦しているのですが 環境はpc9821にFTPでインストールしてUSER環境を 選択しています。この環境でperlへのパスをCGIを使うためのファイルを/usr/bin/perlに指定していたとおもうのですがperlはきちんとうごいているのでしょうか? USER環境にはperlははいっていないということはありませんでしょうか?よろしくおねがいします。

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

  • ベストアンサー
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.1

#which perl かと。 使えないようにすることはないと思いますが、入ってないことはあるかも知れませんね。

naga092
質問者

補足

#which perlを実行すると /usr/bin/perlとでました。 どうやらはいっているようです。 ほかにサーバー機に必要なものは ないのでしょうか? perlでうごかしているCGIのようなのでperl があればいいのかなあとおもっているのですが・

その他の回答 (3)

  • root139
  • ベストアンサー率60% (488/809)
回答No.4

#3で確認させて頂きましたが、perlのパスの指定は、ご指摘の通り、「!」が入り「#!usr/bin/perl 」となりますね。失礼しました。 perlは動いているようですので、apacheの設定が怪しいと思います。 手元に2.0が無いので1.3.20の場合の話になりますが、httpd.confを下記のように設定すれば、perlのcgiスクリプトが動作したと記憶しています。 a. CGIを動かすディレクトリに、ExecCGIオプションが設定されており、cgi-script のハンドラが設定されている。 例------------------------------------------------------- <Directory "/usr/hoge/html"> Options FollowSymLinks MultiViews ExecCGI  ・  ・  ・ </Directory> --- 中略 --- AddHandler cgi-script .cgi # (←拡張子をcgiにする場合) --------------------------------------------------------- もしくは、 b. CGIを動かすディレクトリが、スクリプトエリアスに設定されている。 例------------------------------------------------------- ScriptAlias /cgi-bin/ "/usr/hoge/cgi-bin/" <Directory "/usr/hoge/cgi-bin">    ・    ・    ・ </Directory> ---------------------------------------------------------

naga092
質問者

お礼

 perlの件は解決しましたのでいったん終了させていただきます。たいへんありがとうございました。

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

whichでPATHが表示されるということは、PATHは通っていると思われますので、 # perl -v としてバージョン情報が表示されれば、perlは使える状態になっていると思います。 また、CGIで動作しないとのことですが、WEBサーバーはapacheでしょうか? perlのパスの指定は、CGIスクリプトの先頭にパス("#/usr/bin/perl"など)を記述しているということでよろしいでしょうか?

naga092
質問者

補足

# perl -vとするとthis is perl. version 5.005_03 built for i386-freebsd とでました。perl は正常に うごいているようです。 Web サーバーは apache 2.0です。もともとはapache1.3.27だったのですが/usr/local/etc/apacheのhttpd.confをさわりすぎておかしくしてしまい。defaultをのこしていなかったのでapacheを入れ直すとき1.3.27をいれなおすとそのままもとのhttpd.confのままだったので2.0にするとhttpd.confを新しくしてくれました。 先頭のパスは#/usr/bin/perlではなく#!/usr/bin/perl となっており!がついています。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

perlがインストールされているかは、pkg_infoコマンドで分かります。 # pkg_info | grep perl <ENTER> perl-5.6.1_11 Practical Extraction and Report Lnaguage どのファイルがどこにインストールされているかは -L オプションで わかります。 # pkg_info -L perl-5.6.1_11 <ENTER> perlの場所が分かったら、PATHが通っているか確認して下さい。

naga092
質問者

補足

which perlとすると/usr/bin/perlとでました。 しかし# pkg_info | grep perl としてもなにもでてきませんでした。 これはなにをいみしているのでしょうか?

関連するQ&A

  • Perlのパス

    レンタルサーバーのCGIの説明で、「1.perl のパスは、/usr/bin/perl です。2.プログラムの先頭の記述は必ず、#!/usr/bin/perl となります。」って書いてあるんですけど、これを使用する場合、 http://www.kent-web.com/data/cart.html たぶん、admin.cgi , cart.cgi , order.cgi を エディタ で開いて以下の箇所をあたまの部分、#!/usr/bin/perl を変えればいいんですかね?それで1.の/usr/bin/perl は何処に書くのかな?それとも説明 の前置きですかね?「1.perl のパスは、」という意味はリンクがこうなるよ!って意味ですかね? ただま、KENT WEBみながら苦戦してます。 シロウトですいません。

    • ベストアンサー
    • Perl
  • PERL 宣言文 -wについて

    Perl初心者のWEBサーバエンジニアです。 サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。 【サーバ環境】 perl実行パス      /usr/local/bin/perl シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl ソース記述       #!/usr/bin/perl ヴァージョン      5.8.5 perl実行環境      http://△△△.jp/cgi-bin/ ※apacheのスクリプトエイリアス指定 options +ExecCGI -Include SetHandler cgi-script 上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。 ファイルは以前動作したサーバから引っ張ってきました。 原因を探っていたのですが、cgiファイルのソース記述を #!/usr/bin/perl -w と記述を変更すると正常に動作しました。 -w について 【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】 と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。 なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • UTF-8で書いたperlのパスが正しく読まれない

    元々htmlファイルもcgiファイルもShift-JISで書いていました 英語環境に変えようと、UFT-8にすべくEncordingConverterでファイルを変換しました htmlファイルは文字コード指定も当然UFT-8にし、アップして表示させてみたところ問題なく表示されました しかし、cgiファイルの方が正しく表示されず、perlチェックをしてみたところパスが ・ソ#!/usr/bin/perl となっていました これが原因で正しく表示されなかったようです そこでcgiファイルをテキストエディタで開いてみたのですが、そのエディタ上では #!/usr/bin/perl と本来あるべき正しい表示になっています 文字コードもUTF-8形式になっています どうしれやればきちんと読み取ってもらえるのでしょうか? エディタで開いても「・ソ」の部分が表示されないのでなおしようがなく困っています どなたか解決方法お分かりの方ぜひご教授ください よろしくお願いします

    • ベストアンサー
    • CGI
  • 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の1行目が#!/usr/bin/perlだと動かず#!/usr

    perlの1行目が#!/usr/bin/perlだと動かず#!/usr/bin/perl5.8.9だと動くのですが、 #!/usr/bin/perlで動くようにするにはどうしたらいいのでしょうか? インストールされているperlは This is perl, v5.8.9 built for darwin-2level です。 どこかでパスの設定をしてやればいいと思うのですが、 どこに何を書けばいいのかよくわかりません。 環境はMacOsX v10.6 SnowLeopardです。 どなたかよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perlのcgiが動かない・・・

    cgiを組もうと思い、まずは簡単なもので試そうと思ったのですが、 うまくいかず困っています。 ↓プログラムは、こんな感じです。 ファイル名:index.cgi #!/usr/bin/perl print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; <やってみたこと> ・Perlのパス「#!/usr/bin/perl」 が間違っていないか? which perl で /usr/bin/perl とでます。 ・Apache の設定が正しく行なわれているか? http://localhost でindex.htmlがきちんと表示できています。 ・「hello.cgi」 の設置場所を間違っていないか? プログラムソースが出るということは、 間違っていないのではないでしょうか? ・ためしに実行してみた TELNETで ./index.cgi <html><body>abc</body></html> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • #!/usr/local/bin/perlとしたい

    WindowsXP上でCGIを動作させる環境を構築しています。 しかし、サーバにアップロードする際にいちいちPerlパスを変更するのが 面倒なので、「#!/usr/local/bin/perl」と、基本的なディレクトリ指定にしたいです。 (サーバそうでなければ結局指定し直しですが) 現在、「#!c:/perl/bin/Perl」で動かしています。 どうすれば出来るでしょうか?ご教示願います。 ちなみにApacheは2.0.55です。

    • 締切済み
    • CGI
  • Perlの初歩の初歩の初歩(#!/usr/local/bin/perlについて)

    いつもお世話になっています。 Perlを勉強し始めて1か月たっていない人間です。 調べてもよく分からず、気持ち悪いので どうか教えてください。 Perlで記述するとき1行目にperlへのパスを書きますが プロバイダでのパスは「#!/usr/local/bin/perl」です。 私のPC環境では「#!d:/perl/bin/perl」になります。 ある日、PC環境で動作検証するとき 間違ってプロバイダのパスのほうを記述してしまいました。 しかし、それでもPC上で動作しました。 なぜパスが違うのに動作するのでしょうか? なお、わけの分からないまま 「Perlへのパスを通す」というのを昔 やったことがあります。関係がありますか? ある場合、それをすると 「#!d:/perl/bin/perl」の「d:/perl/」の部分が 「/usr/local/」と同になるということなのでしょうか?

    • ベストアンサー
    • CGI
  • サイトにエラーが出て閲覧できません

    前まで見れたサイトがCGIエラーと出て、閲覧できなくなりました。 以下の文章が出ます。 自分で解決しようと試みましたが、分からない言葉ばかりで苦戦しています。 どうすればよいのでしょう。 ・ パスの指定間違い perl のパスは /usr/bin/perl です。 ・ パーミッション(権限)が正しく設定されていません FTPソフトなどで、パーミッションを適切に設定してみてください。 ・ スクリプトの改行コードに問題があります ファイルの転送時はアスキーモードで転送して下さい。 ・ スクリプトの記述に誤りがある可能性があります 文法チェック等を行ってください。

    • 締切済み
    • CGI
  • Perlのアドレスについて

    はじめまして、 Webサーバー初心者です。 CGIを動かすモジュールを入れて実際自分のサーバーでCGIを動かそうと思ったんですが、CGIのプログラムの頭にある「#!user/local/bin/user」(←例です)などのアドレスの指定がよくわかりません。よく、レンタルサーバーとかであると「うちのPerlのアドレスは#!user/local/bin/user」ですなどと表示されていたりしますが、今回は自分がサーバーなのでほかのユーザーがPerlを使うときにアドレスを指定してあげないといけません。どうしたら自分のサーバーのPerlの場所の指定ができるのでしょうか?(ようは,私の場合どのようなアドレスになるのかが知りたいわけです) ちなみにPerlのインストール先は「C:\Perl」でソフトは「Active Perl」を使用しております。サーバーのOSはWindowsXP(Pro)です。 よろしくお願いします。