无法在@INC 中找到模块 main 的可加载对象

Can't locate loadable object for module main in @INC

在 mod_perl 应用程序 运行 上 ubuntu 16.04 一段时间后,一切正常(几天),我们在错误日志中收到一条致命消息:

failed to resolve handler MyHandler::ModPerl20 Can't locate loadable object for module main in @INC

MyHander::ModPerl20 在位置块中定义

<Perl>
     unshift @INC, '/path/to/my/code';
</Perl>
<Location ~ "/imp($|/)">
    SetHandler modperl
    PerlResponseHandler MyHandler::ModPerl20
</Location>

ubuntuPerl 版本是 5.22。阿帕奇 2.4

这会是问题所在吗? http://blog.feature-addons.de/2016-05-15-otrs-apache-mod-perl-perl-5-22

有什么解决办法吗?我真的必须设置 nginx/uwsgi 吗?

确保 @INC 设置正确,以便找到安装 MyHandler::ModPerl20 的路径(我认为发生的情况是,当 Apache 回收某些子项时,重新开始的子项会执行没有正确的 @INC 值,因此不再找到您的模块)。

尝试添加一个 PerlSwitches -I/your/path/for/myhandler/ 在 httpd.conf 中查看它是否解决了您的问题。

如果情况有所改变,请查看 modperl 文档中的 Adjusting @INC 以了解所有详细信息。

我在其他时候也看到过类似的东西,不仅是 SAS,还有其他产品。

我会要求您的系统管理员检查您的 Linux 服务器中的 IO 模块。我认为他们需要 re-installation,或者可能只是检查相关文件夹的授权。

将 MPM Apache 配置从 mpm_event 更改为 mpm_prefork 解决了我的问题。

虽然它没有解释错误消息 :( 对此表示感谢。