Then I remembered about mod_perl, learned about APACI args and everything, and it make'd just fine all the way through the install. Except for one problem: my mod_perl modules are not running. I have a module defined as a PerlHandler for location "/" which inserts a bit of javascript into each outgoing html doc, and another PerlAuthenHandler for a directory they wanted protected. Neither of those runs anymore. No error messages in the logs, either (except for a 500 error when the protected directory is accessed -- it says "configuration error: couldn't check user. No user file?", which it wouldn't say if it had run my handler).
I configured it like this:
$ perl Makefile.PL `cat make_args`
--where make_args looks like this:
USE_APACI=1 \
EVERYTHING=1 \
DO_HTTPD=1 \
APACHE_SRC=../apache_1.3.23/src \
APACI_ARGS=--enable-module=proxy,--enable-module=rewrite,--enable-module=speling,--enable-module=so,--prefix=/usr/local/apache
Here is the relevant parts of httpd.conf:
Towards the beginning is this line: LoadModule perl_module libexec/libperl.so
Then, later is this section: PerlRequire conf/startup.pl PerlFreshRestart On
PerlModule Apache::AuthPwd
<Location /> SetHandler perl-script PerlHandler Apache::putInJava </Location>
<Location /howdy> SetHandler perl-script PerlHandler Apache::HelloWorld </Location>
<Location /secret> AuthName " -- Use your regular name in the User Name field -- " AuthType Basic PerlAuthenHandler Apache::AuthPwd require valid-user </Location>
(The /howdy location was thrown in at the last minute as a test -- it didn't work.)
Here is httpd -l output:
Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_speling.c mod_userdir.c mod_alias.c mod_rewrite.c mod_access.c mod_auth.c mod_proxy.c mod_expires.c mod_so.c mod_setenvif.c mod_perl.c
And I wrote a little script to print the contents of Apache::MyConfig, which says,
APACHE_HEADER_INSTALL: 1
APACHE_PREFIX:
APACHE_SRC: ../apache_1.3.23/src
APACI_ARGS: --enable-module=proxy,--enable-module=rewrite,--enable-module=speling,--enable-module=so,--prefix=/usr/local/apache
APXS: Apache_Src: ../apache_1.3.23/src DO_HTTPD: 1 NO_HTTPD: 0 PERL_ACCESS: 1 PERL_AUTHEN: 1 PERL_AUTHZ: 1 PERL_CHILD_EXIT: 1 PERL_CHILD_INIT: 1 PERL_CLEANUP: 1 PERL_CONNECTION_API: 1 PERL_DEBUG: PERL_DIRECTIVE_HANDLERS: 1 PERL_DISPATCH: 1 PERL_FILE_API: 1 PERL_FIXUP: 1 PERL_HANDLER: 1 PERL_HEADER_PARSER: 1 PERL_INIT: 1 PERL_LOG: 1 PERL_LOG_API: 1 PERL_METHOD_HANDLERS: 1 PERL_POST_READ_REQUEST: 1 PERL_RESTART: 1 PERL_SECTIONS: 1 PERL_SERVER_API: 1 PERL_SSI: 1 PERL_STACKED_HANDLERS: 1 PERL_STATIC_EXTS: PERL_TABLE_API: 1 PERL_TRACE: 0 PERL_TRANS: 1 PERL_TYPE: 1 PERL_URI_API: 1 PERL_USELARGEFILES: 1 PERL_UTIL_API: 1 PREP_HTTPD: 0 SSL_BASE: USE_APACI: 1 USE_APXS: 0
What am I doing wrong?
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html