I’m migrating a bunch of old cgi web apps to a new server (CentOS8) and running them under mod_perl.
one of them uses the DBD::mysql driver and when running under mod_perl only I get the strange error:
[Tue Jun 02 10:29:32.289698 2020] [:error] [pid 3729:tid 140210163652352] DBD::mysql initialisation failed: Can't locate object method "driver" via package "DBD::mysql" at /usr/lib64/perl5/vendor_perl/DBI.pm line 827.\n\nPerhaps the capitalisation of DBD 'mysql' isn't right. at /home/allwebfiles/perl/badges/choose.pl line 54.\n
This is a really wrong error, since the DBD/mysql.pm script quite clearly has a sub called ‘driver’ and there is no isssue of capitalization in the database handle creation.
the handler code in my perl.conf file is pretty simple:
<Location /badges/>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
allow from all
</Location>
And it works for other locations, although this is the only one using the mysql driver, but DBD::Oracle works fine for a number of other scripts.
If I comment out the handler in perl.conf, add it as a ScriptAlias to run as a CGI script, it works. If I run the script itself on the command line, it works. I only get that error when I run it with a mod_perl handler.
I've asked on the DBI list and no one there has any ideas...
--
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group
Institutions do not have opinions, merely customs
one of them uses the DBD::mysql driver and when running under mod_perl only I get the strange error:
[Tue Jun 02 10:29:32.289698 2020] [:error] [pid 3729:tid 140210163652352] DBD::mysql initialisation failed: Can't locate object method "driver" via package "DBD::mysql" at /usr/lib64/perl5/vendor_perl/DBI.pm line 827.\n\nPerhaps the capitalisation of DBD 'mysql' isn't right. at /home/allwebfiles/perl/badges/choose.pl line 54.\n
This is a really wrong error, since the DBD/mysql.pm script quite clearly has a sub called ‘driver’ and there is no isssue of capitalization in the database handle creation.
the handler code in my perl.conf file is pretty simple:
<Location /badges/>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
allow from all
</Location>
And it works for other locations, although this is the only one using the mysql driver, but DBD::Oracle works fine for a number of other scripts.
If I comment out the handler in perl.conf, add it as a ScriptAlias to run as a CGI script, it works. If I run the script itself on the command line, it works. I only get that error when I run it with a mod_perl handler.
I've asked on the DBI list and no one there has any ideas...
--
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group
Institutions do not have opinions, merely customs