I had the same issue trying to run Bugzilla, using Strawberry Perl portable through Apache and mod_cgi. The solution was to set the proper environment for perl as called through mod_cgi.
If you're using portable Strawberry Perl (or even if you're not it's worth trying this fix), add this to your httpd.conf
(if using Apache - if not, see how your web server can set environment variables for cgi processes):
Define PERLPATH "C:\path\to\perl"
SetEnv PATH "${PERLPATH}\perl\site\bin;${PERLPATH}\perl\bin;${PERLPATH}\c\bin"
SetEnv TERM ""
SetEnv PERL_JSON_BACKEND ""
SetEnv PERL_YAML_BACKEND ""
SetEnv PERL5LIB ""
SetEnv PERL5OPT ""
SetEnv PERL_MM_OPT ""
SetEnv PERL_MB_OPT ""
I placed these in the <Directory>
in which they are relevant, not globally, but your setup may be different.
I got these from portableshell.bat
which is bundled with the portable distribution and is the only proper way to run it if you have another installation (or even none at all).
Although Bugzilla's code runs in taint mode (and thus should ignore the environment) it appears to not be the case entirely, probably because whatever was complaining about libeay32_.dll
was called by the script, rather than being the actual main script itself.