現象

PowerCMS バージョン3.x, ないしはPowerCMS バージョン4.x 環境のA-Formで
フォームの確認ボタン(送信ボタン)をクリックした時に 次のようなエラーが出て
先に進めない。
A-Memberのログイン判定時や認証付きダウンロードでも同種の不具合が発生する可能性があります。

※メッセージ内容は一例です。サーバ環境やMTテンプレート構成により異なり、この通りでない場合があります。参考までに2例掲載します。

例1:

Can't locate CustomFields/Util.pm in @INC (@INC contains: addons/Commercial.pack/lib
MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/PowerCMS.pack/extlib MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/PowerCMS.pack/lib /MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/CustomGroup.pack/lib MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/PluginManager.pack/lib MT_INSTALL_DIRECTORY/plugins/AForm/../../extlib MT_INSTALL_DIRECTORY/plugins/AForm/../../lib MT_INSTALL_DIRECTORY/plugins/AForm/./lib /opt/lib/perl5/5.10.0/i686-linux
/opt/lib/perl5/5.10.0
/opt/lib/perl5/site_perl/5.10.0/i686-linux /opt/lib/perl5/site_perl/5.10.0 /opt/lib/perl5/site_perl .)

例2:

Got an error: failed loading package CustomObject::Plugin for routine
CustomObject::Plugin::initializer: Can't locate PowerCMS/Util.pm in
@INC (@INC contains: addons/PowerCMS.pack/lib
MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/CustomObject.pack/extlib
MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/CustomObject.pack/lib
MT_INSTALL_DIRECTORY/plugins/AForm/../../addons/CustomGroup.pack/lib
MT_INSTALL_DIRECTORY/plugins/AForm/../../extlib
MT_INSTALL_DIRECTORY/plugins/AForm/../../lib
MT_INSTALL_DIRECTORY/plugins/AForm/./libUtil.pm
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .)

原因と対応方法

このエラーは「PowerCMS/Util.pm」というファイルが探せないことで、
PowerCMSのライブラリへパスが通っていないところに起因します。

以下、
アルファサード社のサポートさまからご教示いただいた暫定対応になります。

該当するcgi

A-Form
 plugins/AForm/aform_engine.cgi
 plugins/AForm/aform_checker.cgi
 plugins/AForm/aform_logger.cgi
  ※cgiファイルを別の場所に移動している場合は移動先のパスで読み替えてください。

A-Member, A-Reserveでは次の2ファイルも対象
 plugins/AMember/auth.cgi
 plugins/AMember/download.cgi

に対して、

フォームやコメントCGIの設置場所をカスタマイズする
http://www.powercms.jp/blog/2013/04/customize-cgi-path.html

で、 「カスタマイズ後」として紹介されている方法 をお試しください。

詳細なコアプログラムに手を入れずにすむ最も簡易な方法になりますが、
デメリットとしては、
$ENV{MT_HOME} がフルパス指定になるので、MT のパスが変わった場合に
合わせて変更する必要があります。ご注意ください。

本件は、PowerCMS側のつくりに関連しており
A-Formを含むcgi系プラグインでこのような現象が起こりえるようです。

対象製品
対象バージョン
すべてのバージョン
記事更新日
2014年9月 1日