Ich habe heute mod_perl auf einem neuen Gerät eingerichtet.
Das funktioniert soweit auch ganz gut.
Aber jedesmal wenn ich das Perlscript ändere, dann erhalte ich die Meldung:
Subroutine X redefined at srv/www/cgi-bin/script.pl
Ich habe das Script schon völlig reduziert. Als es nur noch ein "hallo Welt"-Script war, kam immernoch derselbe Fehler. Es hat also ganz eindeutig nichts mit meinem Script zu tun.
Komisch ist auch: Der Fehler kommt immer dann, wenn ich das Script zuvor geändert habe und dann auch immer sehr unregelmäßig. Also nicht bei jedem Aufruf.
Der Fehler
wiederholt sich jedesmal für jede Subroutine.
Sobald ich den Server neustarte, hörts auf. Aber sobald ich nur einmal etwas ändere, gehts wieder los.
Ich vermute deshalb den Fehler in der Apache-Konfiguration, die folgendermaßen aussieht:
...
<Directory /srv/www/cgi-bin/fields>
AllowOverried AuthConfig
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
<FilesMatch "(test|bilder)\.pl$">
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
</FilesMatch>
...
Die Scripte die ich mit mod_perl behandeln will sind test.pl und bilder.pl.
Wenn ich SetHandler entferne, taucht der Fehler nicht auf, was wohl ein klares Zeichen dafür ist, dass es an ModPerl liegt!
Ich möchte ungern auf die Performance von ModPerl verzichten. Es funktioniert ja trotz der Warnings-Meldung. Aber es stört mich, dass die ganze Zeit mein error_log so vollgemüllt wird.
Ich verwende apache2 und mod_perl2