Das ladbare Objekt für das Modul main kann nicht in @INC gefunden werden

8

In einer mod_perl-Anwendung, die nach einer gewissen Zeit auf ubuntu 16.04 läuft, wo alles gut funktioniert (ein paar Tage), erhalten wir eine fatale Nachricht im Fehlerprotokoll:

  

konnte den Handler MyHandler::ModPerl20 nicht finden. Das ladbare Objekt für das Modulhauptverzeichnis konnte nicht in @INC gefunden werden.

MyHander :: ModPerl20 ist in einem Standortblock

definiert %Vor%

Die ubuntu Perl Version ist 5.22. Apache 2.4

Kann das das Problem sein? Ссылка

Irgendwelche Ideen, wie das zu beheben ist? Muss ich wirklich nginx / uwsgi einrichten?

    
Georg Mavridis 20.01.2017, 16:16
quelle

4 Antworten

0

Das Ändern der MPM Apache Konfiguration von mpm_event zu mpm_prefork hat mein Problem gelöst.

    
Georg Mavridis 28.04.2017, 11:52
quelle
2

Stellen Sie sicher, dass @INC richtig eingerichtet ist, um den Pfad zu finden, in dem MyHandler::ModPerl20 installiert ist (ich denke, wenn Apache einige Kinder recycelt, hat der, der neu startet, nicht die richtige @INC -Wert, weshalb Sie Ihr Modul nicht mehr finden.)

Versuchen Sie, a hinzuzufügen PerlSwitches -I/your/path/for/myhandler/ in httpd.conf, um zu sehen, ob es dein Problem behebt.

Wenn sich das ändert, sehen Sie sich Anpassen von @INC an Modperl-Dokumentation, um alle Details zu sehen.

    
Patrick Mevzek 28.01.2017 20:32
quelle
0

Ich habe etwas ähnliches gesehen, nicht nur mit SAS, sondern auch mit anderen Produkten.

Ich würde Ihren Systemadministrator bitten, die E / A-Module in Ihrem Linux-Server zu überprüfen. Ich denke, sie müssen neu installiert werden oder überprüfen Sie nur die Berechtigungen für die relativen Ordner.

    
thenortonsetup 31.01.2017 10:01
quelle
-1
___ qstnhdr ___ Das ladbare Objekt für das Modul main kann nicht in @INC gefunden werden ___ qstntxt ___

In einer mod_perl-Anwendung, die nach einer gewissen Zeit auf ubuntu 16.04 läuft, wo alles gut funktioniert (ein paar Tage), erhalten wir eine fatale Nachricht im Fehlerprotokoll:

  

konnte den Handler CGI.pm nicht finden. Das ladbare Objekt für das Modulhauptverzeichnis konnte nicht in @INC gefunden werden.

MyHander :: ModPerl20 ist in einem Standortblock

definiert %Vor%

Die ubuntu Perl Version ist 5.22. Apache 2.4

Kann das das Problem sein? Ссылка

Irgendwelche Ideen, wie das zu beheben ist? Muss ich wirklich nginx / uwsgi einrichten?

    
___ tag123apache ___ Verwenden Sie dieses Tag (zusammen mit einem entsprechenden Programmiersprache-Tag) für die Programmierung von Fragen zum Apache HTTP Server. Verwenden Sie dieses Tag nicht für Fragen zu anderen Apache Foundation-Produkten. Beachten Sie, dass Fragen zur Serverkonfiguration normalerweise besser auf https://serverfault.com passen ___ answer41954574 ___

Ich habe etwas ähnliches gesehen, nicht nur mit SAS, sondern auch mit anderen Produkten.

Ich würde Ihren Systemadministrator bitten, die E / A-Module in Ihrem Linux-Server zu überprüfen. Ich denke, sie müssen neu installiert werden oder überprüfen Sie nur die Berechtigungen für die relativen Ordner.

    
___ answer41908741 ___

Ich wette, dass Ihr Code CGI.pm verwendet und das ist der Grund für den Absturz. Führen Sie den Code ohne PerlWarn on aus und der Code wird niemals abstürzen.

Ich vermute, dass das Perl-Skript einen Speicherumbruch verursacht hat und der Server in Panik geraten musste (CGI.pm kann dies unter anderem verursachen). Also gibt es einen Punkt im Perl-Code, der eine bestimmte Situation nicht richtig behandelt.

Ohne in der Lage zu sein, Ihren Code zu sehen, kann ich nur raten, was ich von hier aus tun soll. Aber Sie können versuchen, PerlSwitches -W oder %code% in der config einzuschalten, strict, warning, eine Datei, die logs enthält, hinzuzufügen alle Warnungen und Fehler von Perl.

    
___ tag123modperl ___ mod-perl ist ein Apache-Webserver-Modul. Das Modul verbessert die Performance von Perl-CGI-Skripten. Skripte werden beim ersten Aufruf in den Speicher geladen und dem Apache-Prozess hinzugefügt. Bei jedem folgenden Aufruf wird das Skript direkt ausgeführt, ohne dass es geladen und analysiert werden muss. ___ tag123perl ___ Perl ist eine prozedurale, allgemeine Programmiersprache für allgemeine Zwecke, die für ihre native Unterstützung von regulären Ausdrücken und String-Parsing-Funktionen bekannt ist. Bitte verwenden Sie diesen Tag für Fragen zu Perl im Allgemeinen. Für Dinge, die mit der neuen (aber verwandten) Sprache "Perl 6" zu tun haben, verwenden Sie bitte das perl6-Tag. Verwenden Sie für reguläre Ausdrücke nach Perl-Art in anderen Sprachen das Regex-Tag oder, falls sie auf der PCRE-Bibliothek basieren, das PCRE-Tag. ___ answer43679568 ___

Das Ändern der MPM Apache Konfiguration von mpm_event zu mpm_prefork hat mein Problem gelöst.

    
___ answer41914540 ___

Stellen Sie sicher, dass %code% richtig eingerichtet ist, um den Pfad zu finden, in dem %code% installiert ist (ich denke, wenn Apache einige Kinder recycelt, hat der, der neu startet, nicht die richtige %code% -Wert, weshalb Sie Ihr Modul nicht mehr finden.)

Versuchen Sie, a hinzuzufügen %code% in httpd.conf, um zu sehen, ob es dein Problem behebt.

Wenn sich das ändert, sehen Sie sich Anpassen von @INC an Modperl-Dokumentation, um alle Details zu sehen.

    
___
Shaka Flex 28.01.2017 09:51
quelle

Tags und Links