SSH接続でのコマンドラインからはperl -vが5.8.6で成功しましたが、
cgi(apache?http?)では5.8.0のままです。
質問はcgiも同様に5.8.6にする方法です。
・どこかにパスを通すのか
・設定ファイルを編集するのか
・旧バージョンを削除するのか、
調べてもわかりませんでした。どうすればいいですか?
インストールはsh ./install.shで行い、vi ~/.bashrcの設定はしました。
-
-
参考までにディレクトリはこのようになっています。
./var/www/vhosts/.skel/0/httpdocs/test/perl
./var/www/vhosts/.skel/0/httpsdocs/test/perl
./var/www/vhosts/mydomain.com/httpsdocs/test/perl
./usr/share/doc/bash-2.05b/loadables/perl
./usr/share/doc/db4-devel-4.1.25/ref/perl
./usr/bin/perl
./usr/local/ActivePerl-5.8/bin/perl
./usr/local/ActivePerl-5.8/html/perl
./usr/local/ActivePerl/bin/perl
./usr/local/ActivePerl/html/perl
./usr/src/ActivePerl-5.8.6.811-i686-linux/perl
./usr/src/ActivePerl-5.8.6.811-i686-linux/perl/bin/perl
./usr/src/ActivePerl-5.8.6.811-i686-linux/perl/html/perl
環境はRedHatです
この場合 ActivePerl の使い方となりますね。
両方ともコマンドラインでも CGI でも使えるのでその呼び方は混乱を呼びそうです。
Perl ( /usr/bin/perl ) と ActivePerl ( /usr/local/ActivePerl-5.8/bin/perl ) と呼称します。
ActivePerl インストール前に使用していたモジュールは当然 Perl 用にインストールされているはずです。
CGI 用に ActivePerl を使うなら必要なモジュールをこちらにもインストールする事になるでしょう。
ActivePerl 独自の方法として ppm による管理があります。
すでに用意されているパッケージであればこちらでインストールするのが楽です。
/usr/local/ActivePerl-5.8/bin/ppm コマンドで実行できるはずです。
また、ActivePerl は従来の cpan も使えます。
使用方法はまったく同じですが、その時々で使用されている Perl/ActivePerl どちらを使用しているか混乱を避ける為に、最初の Makefile.PL 実行時に
Perl 用の場合 $ /usr/bin/perl Makefile.PL ActivePerl 用の場合 $ /usr/local/ActivePerl-5.8/bin/perl Makefile.PL
とすれば適切に Makefile が生成されます。
あとの make ; make install は同じです。
それはアップデートしたんじゃなくて両方導入しているだけですね。
そのままでも CGI の方で使うバージョンを変更できます。
CGI の先頭行に有る、
#|/usr/bin/perl
を
#!/usr/local/ActivePerl-5.8/bin/perl
に書き換えてください。
何かオプションが付いている場合も同じようにつければ動作します。
ただ、perl5.8.6 と AcrivePerl-5.8.6 は基本的には同じ挙動を示すはずですが、あくまで別実装なので細かな挙動が違う可能性があるので注意してください。