Changes for version 1.07_04
- fix "building mod_perl by hand" bug w/ 1.3bx spotted by Brian Mosley
- no longer force 'PerlSendHeader On' for sub-requests which triggered a bug spotted by Doug Bagley and Gerald Richter
- Fix "Attempt to free unreferenced scalar." during kill -HUP w/ PerlFreshRestart On and <Perl> in httpd.conf spotted by Brian Mosley
- clear endav and stacked_handlers on FreshRestart
- fix bug spotted by Gerald Richter where Apache->register_cleanup would cause a core dump
- Apache->module will no longer eval "require $module", it will now return true if the module is in %INC, false otherwise
- fix so END blocks encountered at startup are run at shutdown (I think one of the 1.07_xx version broke it)
- If exists, Makefile.PL will add /usr/local/stronghold/conf/httpd.conf's StrongholdKey to t/conf/httpd.conf for 'make test' for you
- Makefile.PL will edit Stronghold's Makefile to replace: "CFLAGS=$(CFLAGS)" with 'CFLAGS=$(CFLAGS)' so the SUBVERSION thang works
- fix $r->custom_response problem spotted by Brian Mosley so it works with SERVER_ERROR
- added new method child_terminate
- fix $r->current_callback so it can be called during startup
- perl Makefile.PL PERL_DEBUG=1 will: -add `-g' to EXTRA_CFLAGS -turn on PERL_TRACE -set PERL_DESTRUCT_LEVEL=2 -link against libperld if -e $Config{archlibexp}/CORE/libperld$Config{lib_ext}
- Apache::Constants :common export tag no longer includes OPT_EXECCGI (was held off from 1.07_01's Changes Apache::Constants cleanup waiting to make sure HTML::Embperl and Apache::ePerl didn't rely on OPT_EXECCGI to be exported by default. both look fine now)
- added workaround Apache::RedirectLogFix module to work around the re-introduced log bug below
- to fix a double-header send bug spotted by Doug Bagley, backed out this Change from 1.06: Apache::Registry will return REDIRECT if $r->header_out("Location") so the request is logged properly, thanks to spot by Jon Drukman
- added experimental PerlRestartHandler (enabled with PERL_RESTART_HANDLER=1, note: _not_ enabled with EVERYTHING=1)
- moved Apache::sv_name function to the new Apache::Symbol package
- Apache::StatINC will call Apache::Symbol's undef_functions method for .pm classes if PerlSetVar UndefOnReload is On
- before re-compiling, Apache::Registry will now check if $package->can('undef_functions'), if so, invoke that method
- added Apache::Symbol module with an undef_functions method
- Apache->server_root_relative now defaults to "" when no filename/directory name argument is given (ie returns ServerRoot)
- made PERL_TRACE more useful with levels set via environment variable MOD_PERL_TRACE: d - trace directive handling during config read s - trace processing of perl sections h - trace Perl*Handler callbacks g - trace global variable handling, intepreter allocation, END blocks, etc. all - all of the above
- will add -DSTRONGHOLD to CFLAGS if build against stronghold, thanks to Todd R. Eigenschink
- fix Makefile.PL's parsing of SERVER_SUBVERSION, spotted by Paul Sutton
- $r->send_http_header can now accept an optional second argument, if present will set $r->content_type
- PerlPassEnv, PerlRequire and PerlModule now use an array_header structure for internal storage
- 1.3b4 compat:
- adapt to new table api changes (with help from Rob Hartill and Dean Gaudet)
- adapt to *.h move to the new src/include directory
- Apache::Status enhancements:
- "Loaded Modules" will now report last modified time
- "packages" are now links, click, symbol table dump
- now that packages are links, no longer do recursive dump (recurse yourself via hyperlinks, much easier to read!!!)
- hashes, scalars and arrays are now links, click, Data::Dumper Dump (only if PerlSetVar StatusDumper is On)
- functions are now links, click, subroutine info (requires the B module)
- dump of any type also has a link "Peek Dump" (only if PerlSetVar StatusPeek is On and Apache::Peek is installed)
- dump of any type also has a link "OP Tree Graph" (only if PerlSetVar StatusGraph is On) (requires the B and B::Graph modules and the dot program)
- added t/modules/status test
- with the -DPERL_MARK_WHERE experimental feature enabled, there's a chance you'll never see "Use of uninitialized value." again without some more useful information, nor will you see '-e' reported outside of Apache::Registry
- perl_destruct_level can now be set via the environment variable PERL_DESTRUCT_LEVEL or -DPERL_DESTRUCT_LEVEL
- turn default perl_destruct_level down from 2 to Perl's default of 0
- use a copy of apache's ap_cpystrn against versions < 1.3b4-dev
- got rid of "Use of uninitialized value." warning in perl_util.c seen when running HTML::Embperl, hunted down by Todd Eigenschink and Gerald Richter
- added modules/src test for Apache::src
- documented Apache::src
- the Apache::src->new method will now default to the first auto/Apache/include directory found relative to @INC
- the apache header files (*.h) will now be installed in $(INST_ARCHLIB)/auto/Apache/include
- fix $Apache::ServerStarting bug that broke 'make test' w/ ApacheSSL and Stronghold spotted by Vivek Khera
- remove the need for File::Copy's mv() function, since it can't seem to decide if it has one or not
- _03's new tests assumed PerlCleanupHandler was enabled, fixed now thanks to spot by Rob Hartill
- Makefile.PL will now chmod a+x t/net/perl/* t/net/perl/io/* thanks to Rob Hartill
- experimental features can be enabled with -DDEFINEs instead of $variables or %ENV, changes to Makefile.PL make them simple to add, see eg/makepl_args.mod_perl for even simpler
- added eg/makepl_args.mod_perl
- the makepl_args.mod_perl can now have multiple lines, space, #comments and empty newlines are ignored, stops reading if it hits __END__
- Makefile.PL will now also look for $ENV{HOME}/.makepl_args.mod_perl and read in if exists
- before clearing handlers stacked via Apache->push_handlers at the end of each request, save the PerlChildExitHandler stack and putback after the clear. this way, modules pulled in at server startup can say: Apache->push_handlers(PerlChildExitHandler => sub {})
- a "top-level" mod_perl per-directory directive would cause core dump inside <Perl> sections. now trap that and exit with message that the directive should be inside a containter e.g. %Location, %VirtualHost (not sure what the real problem is here)
- re-work PERL_SECTIONS_SELF_BOOT stuff so it calls perl_section() directly, rather than perl_eat_config_string("<Perl>\n</Perl>"), because:
- it no longer core dumps when a "top-level" per-server directive is found
- it no longer requires 1.3b3+ (1.2.x will work)
- it is faster
- PerlModule/PERL_SECTIONS_SELF_BOOT will delete $INC{$PerlModule} on the first config read pass, so it's re-read on the second pass
- if ($] < 5.004_04) Makefile.PL will warn that users should upgrade to
Changes for version 1.07_03
- removed "[notice] mod_perl restarted" message since it doesn't go to the error_log as it should, spotted by Vivek Khera and Paul Phillips
- fixed corrupted $ENV{TZ} spotted by Michael Parker
- cut out 'make test' error_log noise, anything there now should only be an error or a non-error [notice]
- make Apache::Resource simpler to configure, to use w/ all defaults (1.3bx + PerlChildInitHandler required): PerlSetEnv PERL_RLIMIT_DEFAULTS On PerlModule Apache::Resource
- Makefile.PL will now: mv "t/conf/httpd.conf", "t/conf/httpd.conf.old" so httpd.conf is re-generated when Makefile.PL is re-run
- added new module Apache::src for finding it and picking out bits-n-pieces
- get rid of some <Perl> section warnings with help from Doug Bagley
- improved register_cleanup tests
- applied $r->register_cleanup patch from Doug Bagley to properly call MP_RCLEANUP_off after cleanups are run
- perl Makefile.PL can now accept ADD_MODULE, Makefile.PL will (s/,/ /g) and uncomment the list of modules from src/Configuration e.g.: ADD_MODULE=unique_id,proxy,info
- perl Makefile.PL can now accept PERL_EXTRA_CFLAGS, Makefile.PL will (s/,/ /g) which are added to EXTRA_CFLAGS e.g.: PERL_EXTRA_CFLAGS=-DFOO=1,-DBAR=2
- if the file `makepl_args.modperl' is present in . or .. it will be read into @ARGV, e.g. might contain EVERYTHING=1 DO_HTTPD=1
- fixes for 1.3b4-dev compat
- get rid of AuthName space in generated .htaccess file for internal/hooks test
- if a PerlModule defines something in %Apache::ReadConfig <Perl> sections are run without need to actually have <Perl></Perl> in httpd.conf, i.e. httpd.conf could be nothing more than: PerlModule Apache::httpd_conf whilst experimental, enable by setting the envrionment variable PERL_SECTIONS_SELF_BOOT to something true
- experimental feature, modules can 'exit|die AUTH_REQUIRED;' or with any HTTP error code and that response is sent rather than SERVER_ERROR to test enable by setting $Apache::ERRSV_CAN_BE_HTTP = 1
- take CGI.pm version check out of Apache::Registry, now that we require 5.004+, they'll have at least 2.36
- get rid of "Use of uninitialized value at -e line 65535" warning caused by perl_run_rgy_endav() spotted by Doug Bagley
- if there is an error inside <Perl>, filename and line number are now displayed in the error message, e.g. syntax error at t/conf/httpd.conf line 25 instead of syntax error at (eval 1) line 2
- Apache::RegistryLoader->handler will now strip leading '/' when $uri is server_root_relative and no $filename is present
- Apache::Status menu item "Perl Section Configuration" (only if $Apache::ReadConfig is true)
- added Apache::Status menu item "Enabled mod_perl Hooks"
- added mod_perl.pm functions hook() and hooks()
- go back to internal <Perl> sections package name ApacheReadConfig
- Apache::PerlSections stuff:
- added handy store method for writing dump() to disk
- fixed self-test
- updated docs to reflect new output format
- Apache::test stuff:
- added run method
- added MM_test method for Makefile.PL's to say: *MY::test = \&Apache::test::MM_test
- some httpd_conf.pm stuff:
- added server_url method
- added catch_signals method to terminate httpd on __DIE__ or INT ($conf->server_start calls this by default)
- when httpd.conf is written, set BaseDir in a BEGIN block
- drop trailing slash from Alias'
- fix write() method's assignment of %$self to *Apache::ReadConfig::
- fix possible core dump when calling gv_fetchmethod()
Changes for version 1.07_02
- fixed perl.exp thang on aix
- added tests t/modules/httpdconf.t and t/modules/perlsections.t
- added Apache::httpd_conf module
- if variable $Apache::ReadConfig is true, don't undef the <Perl> section eval package %Apache::ReadConfig::
- output of Apache::PerlSections->dump is now suitable to be eval'd
- added Apache->httpd_conf method (just pushes into @Apache::ReadConfig::PerlConfig and requires 1.3b3+)
- renamed package <Perl> sections are proccessed in from ApacheReadConfig to Apache::ReadConfig
- ensure values of %Location keys, etc. in <Perl> sections are HASH refs to stop possible core dump spotted by Stuart Frew
- fixed memory leak in $r->push_handlers() with help from Gerald Richter
- added new items to Apache::Status: "Environment", "Perl Configuration", and "Signal Handlers"
- when %ENV is setup, my_setenv() is now called so subprocesses will inherit
- "top-level" PerlSetEnv variables will now be set during server startup
- got rid of unintialized warning in Apache::Status
- $r->custom_response will now add the `"' needed if arg is not a url or filename
- added new Constants CONTINUE and NOT_AUTHORITATIVE as aliases for DECLINED
- change the `PerlScript' directive name to `PerlRequire' as suggested by Dick Hardt (PerlScript will still work, but is not documented)
- set variable $Apache::ServerStarting to 1 during perl_startup()
- set variable $Apache::ServerReStarting to 1 during perl_restart()
- Apache::SIG->set is now called at server startup by default
- applied patch from Doug Bagley to stop possible infininite loop in Apache->read
- create stacked_handlers = newHV() before modules are loaded, so PerlModule's can do things like: Apache->push_handlers(PerlChildInitHandler => sub { srand(time ^ $$); });
- $r->args can now be modified as suggested by Joel Truher
- remove obsolete (and broken) iedit of t/net/perl/cgi.pl thanks to Vivek Khera
- Apache::Resource now correctly converts MB values
Changes for version 1.07_01
- added t/internal/stacked test
- updated the FAQ from Frank Cringle
- added Apache::fork module which override's Perl's built-in fork() and provides a forkoption function, contributed by Michael Turner
- can now build/run w/ 5.004_55 threaded Perl
- added Apache::Status item for PerlScripts
- there can now be multiple PerlScript files in *.conf and .htaccess (same behavior as PerlModule)
- ServerRoot is now pushed into @INC at server startup
- filename argument to log_reason is now optional, defaults to $r->uri
- Apache::Constants cleanup:
- @EXPORT now only holds items in :common
- re-organized tags (adding some new ones)
- added some documentation!
- $r->get_remote_host can now take an optional type argument, default is still REMOTE_HOST, other valid options are Apache::Constants :remotehost
- added new Apache::Constants tag :remotehost (for $r->get_remote_host) with new constants: REMOTE_HOST REMOTE_NAME REMOTE_NOLOOKUP REMOTE_DOUBLE_REV
- added new Apache::Constants tag :satisfy (for $r->satisfies) with new constants: SATISFY_ALL, SATISFY_ANY, SATISFY_NOSPEC
- added new method $r->satisfies
- added new method $r->some_auth_required
- `METHODS' Apache::Constant added to import tag :methods
- perl_stdout2client() will now set $| instead of perl_handler(), so thanks to Salvador Ortiz Garcia for the tip
- PerlSetEnv will now call my_setenv() underneath thanks to Tim Bunce for the tip
- fix mod_perl_traps.pod typo so it can install, spotted by Brian Tiemann
Documentation
using LWP::Simple and Benchmark.pm to benchmark mod_perl
benchmark mod_perl vs. CGI with File::CounterFile
First steps needed to use mod_perl as a CGI replacement
accessing the Apache API via mod_perl ($Date: 1998/02/10 08:58:18 $)
running CGI scripts under mod_perl ($Date: 1998/02/10 08:58:18 $)
frequently asked questions about mod_perl ($Date: 1998/02/10 08:58:18 $)
Embed a Perl interpreter in the Apache HTTP server
common/known mod_perl traps
mod_perl performance tuning
Modules
Perl interface to the Apache server API
Constants defined in apache header files
Things for symbol things
Utilities for debugging embedded perl code
Utilities for mod_perl/mod_include integration
OPT_* defines from httpd_core.h
Utilities for work with <Perl> sections
Properly set redirect status for loggers
Run unaltered CGI scrips under mod_perl
Compile Apache::Registry scripts at server startup
Limit resources used by httpd children
Override apache signal handlers with Perl's
Reload %INC files when updated on disk
Embedded interpreter status information
Override Perl's built-in fork()
Generate an httpd.conf file
Methods for locating and parsing bits of Apache source code
Install Apache mod_perl and related modules
Provides
in lib/Apache/FakeRequest.pm
in lib/Apache/httpd_conf.pm
in lib/Apache/test.pm
in lib/Apache/Registry.pm
in lib/mod_perl.pm