プロが教える店舗&オフィスのセキュリティ対策術

Kento Webさんで配布されているCGI「Shopping Cart」が Software error:
Can't call method "param" on an undefined value at ./lib/menu_list.pl line 310.
となり動きません。

**** 経緯 ****
これまでは、自宅サーバーCentos6.5で運用していましたが、先日Centos7に入れ替えました。(/var/www/配下はそのまま使用)

・OSインストール後
・SELinuxの無効化 ファイアウォール停止
・yum -y install httpd (httpdインストール)
・yum -y install php php-mbstring (php、php-mbstringインストール)
・/etc/httpd/conf/httpd.conf (httpd設定ファイル編集)
  Options Includes ExecCGI FollowSymLinks (CGI,SSIの許可)
  AllowOverride All (.htaccessの許可)
  AddHandler cgi-script .cgi .pl (CGIスクリプト.cgi .plの許可)

・ln -s /usr/bin/perl /usr/local/bin/perl (リンクをはる)

この状態で確認するに「Shopping Cart」を含め他のCGIも動きません。
Internal Server Error
 BEGIN failed--compilation aborted at
 End of script output before headers

ネットをググってみるにCGI.pmがインストールされていないようなので
・yum -y install perl-CGI

その後確認するに、「Shopping Cart」はNGだが他のCGIはOKとなりました。

「Shopping Cart」のエラー
Software error:
 Can't call method "param" on an undefined value at ./lib/menu_list.pl line 310.


「Shopping Cart」と一緒に配布されている、「check.cgi」での動作チェックは、CGI.pmインストール前は、Internal Server ErrorでしたがCGI.pmインストール後全てOKとなりました。

パーミッションの確認も行いましたが間違いは無いようです。

よろしくお願いします。

A 回答 (1件)

で、


./lib/menu_list.pl line 310.
は何が書かれている??

この回答への補足

早々のご返事ありがとうございます。

./lib/menu_list.pl line 310.の近くは下記です。

よろしくお願いします。

304# セッションを開く(更新モード)
305my $ses;
306if ($key) {
307$ses = CGI::Session->new(undef, $in{sid}, {Directory => $cf{sesdir}});
308
309# 有効時間指定
310$ses->expire($cf{ses_expire});
311
312# Read Only
313} else {
314$ses = CGI::Session->load(undef, $in{sid}, {Directory => $cf{sesdir}});
315}
316
317# カートID取得
318my $id = $ses->param('id');

補足日時:2014/08/07 19:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!