• ベストアンサー

CGIでPERLのモジュールの有無をしらべたい

telnetやsshなどで行うのではなく、CGIスクリプト上でサーバーにPerlのモジュールが使えるかどうか調べたいのです。 たとえば Crypt::DSA Image::Magick などが使えるかどうかです。 いわゆる ブラウザ上で Crypt::DSAがインストールされていません。NGです。 とか Image::Magickはインストールされています。OKです。 のようにです。 恐れ入りますがよろしくお願いいたします。

  • CGI
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
回答No.1

ダサいソースですが書いてみました #!/usr/bin/perl print"Content-type: text/html\n\n"; print "<html><pre>\n"; ## 調べたいモジュールを@pm_test に入れる @pm_test = ('Crypt::DSA','Image::Magick','uso::desu','file::Find'); $lib_path= join(" ", @INC); @pm_path = `find $lib_path -type f -name "*.pm"`; foreach $pm_test(@pm_test) {print"<hr> $pm_test のチェック<BR>\n"; $pm_test =~s/::/\//g; $pm_test = $pm_test .'.pm'; foreach(@pm_path) {if(/$pm_test$/i) {$yn{$pm_test}=$_; unless(/$pm_test$/){$check{$pm_test} = " 但し大文字と小文字の指定が違います<br>\n ";} last; } } if($yn{$pm_test}){print "$pm_test = $yn{$pm_test}<BR>$check{$pm_test}\n";} else{print "$pm_test is Nothing<br>\n";} } __END__ # 家のTEST用サーバーでの結果は Crypt/DSA.pm = /usr/lib/perl5/site_perl/5.8.8/Crypt/DSA.pm Image/Magick.pm is Nothing uso/desu.pm is Nothing file/Find.pm = /usr/lib/perl5/5.8.8/File/Find.pm 但し大文字と小文字の指定が違います

その他の回答 (2)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

Futomiのサーバアナライザがおすすめです。

参考URL:
http://www.futomi.com/library/servana.html
回答No.2

悪いアプローチかもしれませんが、 --- eval 'use HOGE;'; if($@){ # インストールされてる場合の処理 }else{ # インストールされてない場合の処理 } ---

関連するQ&A

  • 自作cgiスクリプト動作に必要なPerlモジュールが判るツール

    初心者です宜しくお願いします 自作cgiスクリプト動作に必要なPerlモジュールが判るツールてありますでしょうか?自作スクリプトを作成し httpd.exe にActivePerl-5.10.1.1006-MSWin32-x86-291086.msi(デフォルト環境でインストール) をインストールした環境にて動作チェックしたスクリプトをサーバーにUPしましたが画像表示がうまくいきません。サーバー業者に問い合わせたところサーバーは問題なく動作してるとのことでユーザースクリプトのサポートは行わないと回答されてしまいました。そこで自作スクリプト動作に必要なPerlモジュールが判るツールとの質問になりました。 どなたかお分かりになる方よろしくお願い申し上げます。

  • homeにインストールしたperlモジュールを使用する方法

    linuxのレンタルサーバーを使っているのですが、 root権限が無いためperlモジュールをhomeにインストールしました。 perlスクリプトからhome下にあるモジュールを呼び出すとき ef)lib use '/home/perl/'; use CGI; のように"lib use"を使うことなく   use CGI; だけでhome下のモジュールを呼び出すことはできないでしょうか? 良い方法があれば教えてください。

  • Perlのバージョンに対応?非対応?CGIモジュール

    こんにちわ。 Perl初心者ですが、今度簡単なサーバー移行作業を お手伝いすることになり、ちょっとした疑問があります。 (単にCGIファイルやHTMLファイルを新サーバーにあげるだけ。) CGIモジュールというのを使ってプログラムをくんだ 場合、確かPerlのバージョンがモジュールに対応していないと動かなかったように思います。 ので、サーバー移行先で「CGIはパーミッションさえちゃんとしてくれれば動くから、CGIのチェックはしなくていい」といわれたので「CGIモジュールを使っている場合、Perlのバージョンが対応してないと動かないと思うんですけど大丈夫なんでしょうか?」と その仕事を提供してくれた人に聞いたところ 「PerlはOSに依存しないので問題ないです」とすっぱり言われました。 OSに依存しない?! ・・・意味がわかりません。 因みに移行先のサーバーのバージョンは 5.00503です。 これなら、どんなモジュールも対応しているのでしょうか?その担当の方にはもう聞きづらいかんじなので(私自身に知識がないこともあるので)教えていただきたいです。

    • ベストアンサー
    • Perl
  • PerlでImage::Magickを使いたい

    PerlでImage::Magickを使いたい ローカルサーバ上でImage::Magickを使いたいのですが、 設定がうまくいかないので質問です。 Win XP AN HTTPD 1.42p ActivePerl 5.10.1.1007 ImageMagick 6.5.9 Q8 ActivePerlは「C:\usr\local\」以下にインストールしました。 ImageMagickは 「ImageMagick-6.5.9-3-Q8-windows-dll.exe」をダウンロードし、インストールしました。 インストール時に「□Install PerlMagick for ActiveState Perl v5.10.1 build 1007」にチェックを入れました。 インストール場所は初期設定のまま、「C:\Program Files\ImageMagick-6.5.9-Q8」としました。 環境変数の設定が必要との説明を見かけたので、 「MAGICK_HOME」「MAGICK_PATH」を作り、値を「C:\Program Files\ImageMagick-6.5.9-Q8」としました。 set MAGICK_HOME で、 MAGICK_HOME=C:\Program Files\ImageMagick-7.5.9-Q8 と出るのを確認しました。MAGICK_PATHも同様です。 (説明しているサイトが複数あり、表記が違っていたので両方作ってみました) コマンドプロンプトで ppm list すると、 ウ Image-Magick ウ 6.5.9 ウ 9 ウ 863KB ウ site ウ と出てきます。 設定後再起動を行い、MT4のシステムチェックを行うと、 Image::Magick サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。 アップロードした画像のサムネイルを作成する場合に必要となります。 Image::Magickのインストールはインストールマニュアルに沿って行ってください。 と出てしまいました。 以前perlで作成したcgiも動作しません。 ImageMagickのバージョンを微妙に変えてみるなども試しましたが、もうさっぱりです。 助けてください。お願いします:)

    • ベストアンサー
    • Perl
  • Perlのモジュールをインストール後、Apacheの再起動は必要かどうか

    ブラウザに出力させるPerlのプログラム(cgi)を書いています。 Perlのモジュールが足りないため、 cpanでインストールをしました。 特に、Apacheを再起動させないで、 ブラウザにメッセージが出力されました。 通常、ApacheでPerlを使う場合、足りないモジュールを インストールした後はApacheの再起動をするべきなのでしょうか? 再起動する・しないの理由が知りたいです。

    • ベストアンサー
    • Perl
  • Perlモジュールについて

    レンタルサーバーを使用しています。 Perlモジュールと言うのはサーバー管理者にインストールしてもらわないと使えないのでしょうか? それとも自分のディレクトリにおいて使用できるのでしょうか?

  • CGIを使うというのは・・・

    CGIを使うことは、PerlスクリプトにCGIモジュールを使うことと同じですか?

    • 締切済み
    • CGI
  • Perl モジュールのバージョン確認

    サーバー管理者の方に、「お使いのデータベース接続用の Perl モジュールとそのバージョンを教えてください」と聞かれたのですがどう調べれば分かりますか? 現在WHMとcPanelが使えます。SSHコマンドでも調べられるでしょうか?

  • perlのモジュールについて

    Linuxを使って間もない者です.xamppをLinuxにインストールしたのですが、モジュールの格納場所が違っているせいかうまくCGIスクリプトがうまく実行できません. Linux上でのperlモジュールの格納場所を教えていただけないでしょうか? 以下エラー内容 Can't locate JSON/PP.pm in @INC (@INC contains: /usr/lib/perl5/5.8.6/i386-linux-thread-multi /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi 省略・・ /usr/lib/perl5/vendor_perl/5.8.6 //usr/local/lib/site_perl/5.8.2/i386-linux-thread-multi /usr/local/lib/site_perl/5.8.2 /usr/local/lib/site_perl .) at (eval 4) line 3.

  • ppmを使ってのモジュールのインストールについて

    PPMを使用してImage-Magickをインストールしようと試みていますが下記のようになり上手くいきません。 ppm> install Image-Magick Error: no suitable installation target found for package Image-Magick. しかし、 ppm> search Image-Magick とすると。次のように出ます。 1. Image-Magick [0.0] 2. Image-Magick [0.0] つまり、Image-Magickをリポジトリ内で発見はしているようですが・・・。 ついでにリポジトリのImage-Magick.ppdを見てみると次のように記述されていますが・・・。 <SOFTPKG NAME="Image-Magick" VERSION="4,29,0,0"> <TITLE>Image-Magick</TITLE> <ABSTRACT>An objected-oriented Perl interface to ImageMagick.</ABSTRACT> <AUTHOR>Kyle Shorter <magick@wizards.dupont.com></AUTHOR> <IMPLEMENTATION> <OS NAME="MSWin32" /> <ARCHITECTURE NAME="MSWin32-x86-object" /> <CODEBASE HREF="x86/Image-Magick.tar.gz" /> <INSTALL EXEC="perl">install.ppm</INSTALL> </IMPLEMENTATION> </SOFTPKG> OSが対応していないと認識されてしまうからインストールに失敗してしまうのでしょうか??? ちなみに、私の環境は以下になります。 OS: Windows XP Profesional Perl: Active Perl 5.8.1 PPM : version 3.1 わかる方ご教授の程、よろしくお願い致します。

    • ベストアンサー
    • Perl

専門家に質問してみよう