• 締切済み

perlの実行環境について

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

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

みんなの回答

  • cieux
  • ベストアンサー率22% (100/443)
回答No.1

本当に基本的なことなので、全然違う可能性が高いですが、OSにインストールされていないモジュールをコールしたとか、呼ばれるほうのモジュールのパスが違っていたとか、Perlに権限がなかったとか、そういうことはないですか?

qa_add
質問者

補足

回答ありがとうございます。 >OSにインストールされていないモジュールをコールしたとか、呼ばれるほうの >モジュールのパスが違っていたとか、Perlに権限がなかったとか、 すいません、過去の件なので確認ができないのです。 まったく同じプログラムを実行して、一方の環境だけに問題の関数でエラーが出てしまい、問題のある関数だけに切り分けて実行してもエラーが出ました。 問題部分を取り除くとエラーはなく正常に実行できました。

関連するQ&A

  • httpd.confの場所とphp.iniの設定

    いつもお世話になっております。 ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、 ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。 これまで、apacheを調べるときには、 ・rpm -qa | grep apache もしくは、 /usr/local周りを調べていましたが、 apacheが/usr/local/で、複数稼動している場合、 または、/etc/httpd で動いているのか不明な場合、 どのconfをいじるべきかわからないためです。 また、httpd.confの場所がわかった場合、 phpがモジュールとして動いていた場合、 httpd.confに、LoadModule php5_module ・・・ となりますが、そのphp.iniの設定ファイルを導くには、 どのようにしたらよいでしょうか。 これまでは、phpが動くところで、phpinfoして、探していましたが、 それ以外に、いくつか方法を教えていただけると助かります。 最後に、php.iniを編集した後、正しくphp.iniが設定されているか(文法間違いがないか) どうかを確認するには、どうしたらよいでしょうか。 apacheでいう configtestみたいなものはありますでしょうか。 以上、たくさんで申し訳ございませんが、 何卒よろしくお願い致します。

  • PerlのCGIとPHPを

     特定のディレクトリのCGIの中にPHP(Apacheのモジュール版)を書き、(CGIで<?php~?>とHTMLを出力させる)Perl/CGIを実行したときにその出力の中に含まれるPHPを実行させたくて、.htaccessに AddHandler application/x-httpd-php cgi AddHandler cgi-script .cgi を書いたのですが、どうやらPHPのAddHandlerの後に書かれているCGIの方が優先され、PHPが実行されず、CGIのみが実行されます。  順序を逆に書いても、今度はPHPが優先されてしまい、どちらか片方しか実行されません。  どうすれば、両方同時に実行させられるでしょうか、教えてください。  それが不可能ならば、とりあえずPerl/CGIからPHPを呼び出して先に実行させるようなことができるのならば教えてください。  ちなみに、httpd.confには拡張子cgiをすべてのディレクトリでCGIとして実行、拡張子phpもすべてのディレクトリでPHPとして実行させるようにAddHandlerされています。 Apache/2.0.58(Windows版) PHP/5.1.6 CGI: ActivePerl 5.88 です。

    • ベストアンサー
    • PHP
  • 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
  • Perl から csh 実行

    やまとです。 いつもありがとうございます。 Perl + csh を同時(?)に実行する方法を教えてください。 OSはSunです。 具体的にどのような処理を行いたいか簡単に説明しますと。 1.Perlでcshを実行(system関数?)し、cshで環境変数をセット(source)する。 2.cshで環境変数をセットしたら、ファイルを出力する処理が行われます。 3.Perlでcshによって出力されたファイルの内容を画面に表示します。 以下ソースを掲載します。(抜粋して) ================================================== = Perl ( test_perl.pl ) $data = "ABC"; $ret = system(`test_csh.sh $data`); ・ ・ ファイル(test.log)を開き、読込、画面に表示します(まだ作成してません。) ================================================== = Csh ( test_csh.sh ) source test_source.sh echo $1 > test.log ================================================== = test_source.sh setenv CLASSPATH .:/aaa・・・・・・ ↑ PATHの設定を行ってます。 ================================================== 画面に、「ABC」と出力させたいのです。 Perlからcshが実行されていないように思えるのですが、 Perlのsystem関数の使い方が誤っているのでしょうか? それとも、ClassPath等の設定をしなければならないのでしょうか? ちなみにコマンドから、 # test_csh.sh ABC と実行しますと、ファイルが出力され、かつ、sourceも実行されています。 Perlから実行する方法を教えてください。 説明が不十分であれば、補足いたしますのでご指摘ください。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • Configuration File (php.ini) Pathにつ

    Configuration File (php.ini) Pathについて Apache2.2 PHP5.3.2 をWindowsXPマシンにインストールしました。 Configuration File (php.ini) Pathは現在C:\WINDOWSになっています。 httpd.conf内にPHPIniDir "C:/PHP5"(PHPインストールディレクトリです) という記述をし、PHP.iniファイルを同ディレクトリに追加したのですが、 Configuration File (php.ini) Pathは変わらず、PHPが動作しません。 (Apacheは再起動しています) PHPIniDir "C:/WINDOWS"でもダメです。 現状では、 ・PHP.iniをC:\WINDOWSにおく ・httpd.conf内にPHPIniDir "C:/PHP5"を記述(C:\PHP5以下にはPHP.iniをおかない) だとうまくいきます。 ちなみにLoaded Configuration Fileはnoneになっています。 ことの発端は、date関数でワーニングが出たので、調べたところPHP.ini内に date.timezone = "Asia/Tokyo" を追加するとなおるということを見たので修正したのですがなおらなかったことからです。 希望としては ・httpd.conf内にPHPIniDir "C:/PHP5"を記述し、PHP.iniをC:/PHP5以下におきたい  (Configuration File (php.ini) PathをC:/PHP5に変更したい) ・date_default_timezone_setという関数ではなくPHP.iniの設定で上記ワーニングを  なくしたい です。 XAMPPを使用…以外でご回答頂けるとありがたいです。 よろしくお願いしますm(__)m

  • 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

  • Apacheのhttpd.confの設定方法がわかりません

    ただいまPHPとPerlを勉強しようと思い、環境設定に取り組んでいます。 PHPの本を買ってきて、その本に付属しているPHPDEV5というPHPとApache2とMySQLの付いているものをインストールしました。PHPの方は何の問題もなく動作しています。 Perlも本を買ってきたんですが、Perlの本の方もサーバとしてApache2を使っているんですが、最初にインストールしたPHPDEV5付属のApache2のhttpd.confファイルの中身が違っていて、Perlの解説本のとおりにhttpd.confファイルを修正できないため、どのように修正すれば、CGIができるようになるのか分かりません。 どなたかもし設定ファイルの方法がわかる方がいましたら、教えてください。よろしくおねがいします。

    • ベストアンサー
    • Perl
  • macでperl→apacheの環境設定について

    macで独学でperlを勉強しています。 私の状況としては、 macを使って2ヶ月。 macbookair の mac os x の バージョン10.6.6 です。 windowsは5年くらい使っていましたが 映像編集とかネットサーフィンくらいにしか使っていませんでした。 macを買ってからは、 htmlはだいたい使えるようになった。 perlというより、プログラムは初めて勉強する。周囲にプログラム経験者はいない。 という状況です。 perlの勉強を開始して、1週間程、 地道に教科書を勉強して、localhost上でアクセスカウンタは実行できる。 まできました。 ただ、本来であれば作成の環境設定の段階で行うapacheの設定が理解しがたく、 設定を行っていませんでしたので、 フォームをhtmlに送るという段階で躓いてしまいました。 教科書では、ターミナルでapacheの設定を行うとの記載があったのですが、 調べて、Finder上の移動→/etc で隠しファイルを見つけて、 httpd.confを開くまでなんとか、辿り着きました。 ただ、この後、どのように設定を変えればいいのかが、わかりません。 いろんなサイトを見ましたが、 それぞれ書いてあることや記述日が異なり、 また、中級者以上向けに記載のあることがほとんどです。 大変お手数ですが、 この後どのような設定を行えばいいのでしょうか。 ご存知の方がおられればお教えください。

    • ベストアンサー
    • Perl
  • ApachでCGI(Perlスクリプト使用)を動かすときに先頭の#!に関係なく実行できるようにするには。

    ApachでCGI(Perlスクリプト使用)を動かすときに先頭の#!のPerlを動かす場所(?)を指定する行が無かった場合や、違う場合でも、Apachが勝手にperlの場所を解釈しスクリプトを実行してくれるようになるhttpd.confの設定方法ってありますか?

    • ベストアンサー
    • CGI
  • httpd.confのLoadModule記述方法について

    以下の環境にてサーバー構築を考えているのですが、 httpd.confのLoadModule記述にミスがあるようで、 Apacheを起動することができません。 【環境】   OS :WindowsXP   HTTPD:Apache 2.2.3   PHP :Ver5 【httpd.conf】   LoadModule php5_module c:/php5/php5apache2.dll   AddType application/x-httpd-php .php 昔のPHPインストーラーは自動的にhttpd.confを更新してくれた覚えがあるのですが、 最新のPHPは単なるZIPファイルになり設定が面倒になりました。 行った作業は以下になります。 1.Apacheのインストール 2.テストページの確認 3.PHPの解凍 4.php5ts.dllをc:\WINDOWS\system32にコピー 5.php.ini-distをphp.iniにリネームしてc:\WINDOWSにコピー 6.php.iniの「extension_dir」を「c:\php\ext」に設定 7.上記httpd.confの追記内容を記述する 8.Apacheを再起動するが失敗する 手順としてはサイトによって違いますが、 大体のことは試しましたが駄目でした。 どこが悪いのか全くわからないのですが、 問題を解決するにはどうしたらよいでしょうか?

専門家に質問してみよう