PowerCMS(v3, v4)環境 + A-Form環境: フォームの確認ボタンや送信ボタンクリック時にエラー
現象
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系プラグインでこのような現象が起こりえるようです。