何が私のCGI ::セッションのインストールが悪いですの?
-
19-09-2019 - |
質問
私は私が持っている私のcgi-binにperlの-modulesディレクトリを作成し、そのディレクトリにモジュールを抽出して、私のホスト上のCGI ::セッションモジュールをインストール
D: cgi-bin/perl-modules/CGI/
F: cgi-bin/perl-modules/CGI/Session.pm
D: cgi-bin/perl-modules/CGI/Session/
F: cgi-bin/perl-modules/CGI/Session/File.pm
D: cgi-bin/perl-modules/CGI/Session/ID/
D: cgi-bin/perl-modules/CGI/Session/Searialize/
このスクリプトでは、私は(これは、CGI-binに/テスト/にあります)です。
use lib '../perl-modules';
use CGI::Session;
$session = new CGI::Session (
"driver:File",
undef,
{Directory => '/tmp'}
);
$session->param('_logged_in', 1);
$session->param('_remote_ua', $ENV{'HTTP_USER_AGENT'});
$session->expire('+2hr');
すべてが期限切れに呼び出し刚性正常に動作します。
:私は、私は次のエラーを取得するevalの内側に期限切れに電話を入れたときCan't locate auto/CGI/Session/File/expire.al in @INC (@INC contains: ../perl-modules /usr/lib/perl5/5.8.7/i686-linux /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i686-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i686-linux /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .)
任意のアイデア?
解決
あなたは古いバージョンとは、ホスティング上で何かをインストールし、ローカルCGI ::セッションのそのバージョンをインストールして、コピーすることができないということが必要な場合は、「オート/ CGI /セッション/」ディレクトリ%のPerl%/サイト/ libにから/ホスティングへあまりにも。別のオプションは、CPANシェルなしmake
を行うことで、BLIB /弓からそのディレクトリをコピーします。
他のヒント
私はあなたの問題は、相対パス機能にあると思います。あなたのスクリプトは、Apacheまたは別のWebサーバーから実行されていると仮定しても安全と思われます。その場合には、../perl-modules/
はちょうど約どこでも可能性があります。
は、私のWebサーバー上で、現在の作業ディレクトリは/usr/local/apache22/
ので、../perl-modules/
は/usr/local/apache22/../perl-modules
、または/usr/local/perl-modules/
に解決します。これを克服するために、私の代わりに相対パスの絶対パスを置くことをお勧めしたいです。たとえばます:
use lib '/home/user105033/perl-modules/';
所属していません StackOverflow