fixed bug from previous checkin
new preloader with far more shared memory
This commit is contained in:
parent
cb1059bbe4
commit
69c5836f2d
4 changed files with 40 additions and 151 deletions
|
|
@ -20,6 +20,8 @@
|
||||||
- Added more error trapping in caching system.
|
- Added more error trapping in caching system.
|
||||||
- Fixed some layout and control bugs in the color picker form element.
|
- Fixed some layout and control bugs in the color picker form element.
|
||||||
- Added a simple Style Wizard.
|
- Added a simple Style Wizard.
|
||||||
|
- Updated preload.perl to automatically preload all WebGUI related modules,
|
||||||
|
which increased shared memory usage by 30%.
|
||||||
|
|
||||||
|
|
||||||
6.7.7
|
6.7.7
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,13 @@ save you many hours of grief.
|
||||||
installed make sure to update them prior to upgrading. See
|
installed make sure to update them prior to upgrading. See
|
||||||
docs/migration.txt for details.
|
docs/migration.txt for details.
|
||||||
|
|
||||||
|
* You may now optionally create sbin/preload.exclude with a carriage
|
||||||
|
return seperated list of modules you don't want to be preloaded.
|
||||||
|
This file requires each line to contain exactly one full module
|
||||||
|
name such as "WebGUI::Asset::Wobject::WSClient" (without the
|
||||||
|
quotes) per line. No spaces or additional formatting can be
|
||||||
|
present.
|
||||||
|
|
||||||
|
|
||||||
6.7.0
|
6.7.0
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ use Apache2::Const -compile => qw(OK DECLINED NOT_FOUND);
|
||||||
use Apache2::ServerUtil ();
|
use Apache2::ServerUtil ();
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
sub handler {
|
sub handler {
|
||||||
my $r = shift;
|
my $r = shift;
|
||||||
my $s = Apache2::ServerUtil->server;
|
my $s = Apache2::ServerUtil->server;
|
||||||
|
|
@ -107,11 +106,14 @@ sub contentHandler {
|
||||||
} elsif ($session{setting}{specialState} eq "init") {
|
} elsif ($session{setting}{specialState} eq "init") {
|
||||||
return $r->print(setup());
|
return $r->print(setup());
|
||||||
} else {
|
} else {
|
||||||
my $output = page();
|
my $output = "";
|
||||||
if (WebGUI::ErrorHandler::canShowPerformanceIndicators()) {
|
if (WebGUI::ErrorHandler::canShowPerformanceIndicators()) {
|
||||||
my $t = [Time::HiRes::gettimeofday()];
|
my $t = [Time::HiRes::gettimeofday()];
|
||||||
|
$output = page();
|
||||||
$t = Time::HiRes::tv_interval($t) ;
|
$t = Time::HiRes::tv_interval($t) ;
|
||||||
$output =~ s/<\/title>/ : ${t} seconds<\/title>/i;
|
$output =~ s/<\/title>/ : ${t} seconds<\/title>/i;
|
||||||
|
} else {
|
||||||
|
$output = page();
|
||||||
}
|
}
|
||||||
WebGUI::Affiliate::grabReferral(); # process affilliate tracking request
|
WebGUI::Affiliate::grabReferral(); # process affilliate tracking request
|
||||||
if (WebGUI::HTTP::isRedirect()) {
|
if (WebGUI::HTTP::isRedirect()) {
|
||||||
|
|
|
||||||
|
|
@ -10,66 +10,12 @@ $|=1;
|
||||||
use strict;
|
use strict;
|
||||||
print "\nStarting WebGUI ".$WebGUI::VERSION."\n";
|
print "\nStarting WebGUI ".$WebGUI::VERSION."\n";
|
||||||
|
|
||||||
#----------------------------------------
|
|
||||||
# Enable the mod_perl environment.
|
|
||||||
#----------------------------------------
|
|
||||||
#use Apache::Registry (); # Uncomment this for use with mod_perl 1.0
|
|
||||||
use ModPerl::Registry (); # Uncomment this for use with mod_perl 2.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------
|
|
||||||
# System controlled Perl modules.
|
|
||||||
#----------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use CGI (); CGI->compile(':all');
|
|
||||||
use CGI::Carp ();
|
|
||||||
use CGI::Util ();
|
|
||||||
use File::Copy ();
|
|
||||||
use File::Path ();
|
|
||||||
use FileHandle ();
|
|
||||||
use POSIX ();
|
|
||||||
use URI::Escape ();
|
|
||||||
use HTTP::Request ();
|
|
||||||
use HTTP::Headers ();
|
|
||||||
use Digest::MD5 ();
|
|
||||||
use DBI ();
|
|
||||||
use HTML::Parser ();
|
|
||||||
use HTML::TagFilter ();
|
|
||||||
use HTML::Template ();
|
|
||||||
use Parse::PlainConfig ();
|
|
||||||
use Net::SMTP ();
|
|
||||||
use Log::Log4perl ();
|
|
||||||
use Tie::IxHash ();
|
|
||||||
use Tie::CPHash ();
|
|
||||||
use Time::HiRes ();
|
|
||||||
use DateTime ();
|
|
||||||
use DateTime::Format::Strptime ();
|
|
||||||
use DateTime::TimeZone ();
|
|
||||||
use Image::Magick ();
|
|
||||||
use Storable;
|
|
||||||
use XML::Simple ();
|
|
||||||
use Compress::Zlib ();
|
|
||||||
use Archive::Tar ();
|
|
||||||
use Archive::Zip ();
|
|
||||||
use IO::Zlib ();
|
|
||||||
|
|
||||||
####
|
|
||||||
# less commonly used so you may not want them to load into memory
|
|
||||||
###
|
|
||||||
#use SOAP::Lite (); # used only by WS Client
|
|
||||||
#use Net::LDAP (); # used only by LDAP authentication module
|
|
||||||
#use XML::RSSLite (); # used only by syndicated content wobject
|
|
||||||
#use HTML::Highlight (); # used only by search engine
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
# Database connectivity.
|
# Database connectivity.
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
#use Apache::DBI (); # Uncomment if you want to enable connection pooling. Not recommended on low memory systems, or systems using database slaves
|
#use Apache::DBI (); # Uncomment if you want to enable connection pooling. Not recommended on servers with many sites, or those using db slaves.
|
||||||
|
use DBI ();
|
||||||
DBI->install_driver("mysql"); # Change to match your database driver.
|
DBI->install_driver("mysql"); # Change to match your database driver.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -78,100 +24,23 @@ DBI->install_driver("mysql"); # Change to match your database driver.
|
||||||
# WebGUI modules.
|
# WebGUI modules.
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
|
|
||||||
# core
|
|
||||||
use WebGUI ();
|
use WebGUI ();
|
||||||
use WebGUI::Affiliate ();
|
|
||||||
use WebGUI::Asset ();
|
|
||||||
use WebGUI::Auth ();
|
|
||||||
use WebGUI::Cache ();
|
|
||||||
use WebGUI::Config ();
|
|
||||||
use WebGUI::DatabaseLink ();
|
|
||||||
use WebGUI::DateTime ();
|
|
||||||
use WebGUI::ErrorHandler ();
|
|
||||||
use WebGUI::Form ();
|
|
||||||
use WebGUI::FormProcessor ();
|
|
||||||
use WebGUI::Group ();
|
|
||||||
use WebGUI::Grouping ();
|
|
||||||
use WebGUI::HTMLForm ();
|
|
||||||
use WebGUI::HTML ();
|
|
||||||
use WebGUI::Icon ();
|
|
||||||
use WebGUI::International ();
|
|
||||||
use WebGUI::Macro ();
|
|
||||||
use WebGUI::Mail ();
|
|
||||||
use WebGUI::MessageLog ();
|
|
||||||
use WebGUI::Operation ();
|
|
||||||
use WebGUI::Paginator ();
|
|
||||||
use WebGUI::Privilege ();
|
|
||||||
use WebGUI::Session ();
|
|
||||||
use WebGUI::Setting ();
|
|
||||||
use WebGUI::SQL ();
|
|
||||||
use WebGUI::Storage ();
|
|
||||||
use WebGUI::Style ();
|
|
||||||
use WebGUI::TabForm ();
|
|
||||||
use WebGUI::URL ();
|
|
||||||
use WebGUI::User ();
|
|
||||||
use WebGUI::Utility ();
|
use WebGUI::Utility ();
|
||||||
|
use File::Find ();
|
||||||
# help
|
my @modules = ();
|
||||||
#use WebGUI::Help::Asset_Article ();
|
my @excludes = ();
|
||||||
#use WebGUI::Help::Asset ();
|
open(FILE,"<".$webguiRoot."/sbin/preload.exclude");
|
||||||
#use WebGUI::Help::Asset_DataForm ();
|
while (<FILE>) {
|
||||||
#use WebGUI::Help::Asset_EventsCalendar ();
|
chomp;
|
||||||
#use WebGUI::Help::Asset_HttpProxy ();
|
push(@excludes,$_);
|
||||||
#use WebGUI::Help::Asset_IndexedSearch ();
|
}
|
||||||
#use WebGUI::Help::Asset_MessageBoard ();
|
close(FILE);
|
||||||
#use WebGUI::Help::Asset_Poll ();
|
File::Find::find(\&getWebGUIModules, $webguiRoot."/lib/WebGUI");
|
||||||
#use WebGUI::Help::Asset_Product ();
|
foreach my $package (@modules) {
|
||||||
#use WebGUI::Help::Asset_SQLReport ();
|
next if (WebGUI::Utility::isIn($package,@excludes));
|
||||||
#use WebGUI::Help::Asset_Survey ();
|
my $use = "use ".$package." ()";
|
||||||
#use WebGUI::Help::Asset_SyndicatedContent ();
|
eval($use);
|
||||||
#use WebGUI::Help::Asset_Collaboration ();
|
}
|
||||||
#use WebGUI::Help::Asset_Shortcut ();
|
|
||||||
#use WebGUI::Help::Asset_WSClient ();
|
|
||||||
#use WebGUI::Help::AuthLDAP ();
|
|
||||||
#use WebGUI::Help::AuthWebGUI ();
|
|
||||||
#use WebGUI::Help::WebGUI ();
|
|
||||||
|
|
||||||
# i18n
|
|
||||||
use WebGUI::i18n::English ();
|
|
||||||
use WebGUI::i18n::English::Asset ();
|
|
||||||
use WebGUI::i18n::English::Asset_Article ();
|
|
||||||
use WebGUI::i18n::English::Asset_Collaboration ();
|
|
||||||
use WebGUI::i18n::English::Asset_Navigation ();
|
|
||||||
#use WebGUI::i18n::English::AuthLDAP ();
|
|
||||||
use WebGUI::i18n::English::AuthWebGUI ();
|
|
||||||
use WebGUI::i18n::English::WebGUI ();
|
|
||||||
use WebGUI::i18n::English::DateTime ();
|
|
||||||
use WebGUI::i18n::English::WebGUIProfile ();
|
|
||||||
|
|
||||||
# you can significantly reduce your memory usage by preloading the plugins used on your sites, only the most commonly used ones are preloaded by default
|
|
||||||
|
|
||||||
# assets
|
|
||||||
use WebGUI::Asset::File ();
|
|
||||||
use WebGUI::Asset::File::Image ();
|
|
||||||
use WebGUI::Asset::Snippet ();
|
|
||||||
use WebGUI::Asset::Template ();
|
|
||||||
use WebGUI::Asset::Wobject ();
|
|
||||||
use WebGUI::Asset::Wobject::Article ();
|
|
||||||
use WebGUI::Asset::Wobject::Layout ();
|
|
||||||
use WebGUI::Asset::Wobject::Navigation ();
|
|
||||||
use WebGUI::Asset::Wobject::Collaboration ();
|
|
||||||
|
|
||||||
# auth methods
|
|
||||||
use WebGUI::Auth::WebGUI ();
|
|
||||||
#use WebGUI::Auth::LDAP ();
|
|
||||||
|
|
||||||
# macros
|
|
||||||
use WebGUI::Macro::AdminBar ();
|
|
||||||
use WebGUI::Macro::AssetProxy ();
|
|
||||||
use WebGUI::Macro::Extras ();
|
|
||||||
use WebGUI::Macro::FileUrl ();
|
|
||||||
use WebGUI::Macro::JavaScript ();
|
|
||||||
use WebGUI::Macro::PageUrl ();
|
|
||||||
use WebGUI::Macro::Slash_gatewayUrl ();
|
|
||||||
use WebGUI::Macro::Spacer ();
|
|
||||||
use WebGUI::Macro::StyleSheet ();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
|
|
@ -180,10 +49,19 @@ use WebGUI::Macro::StyleSheet ();
|
||||||
WebGUI::Config::loadAllConfigs($webguiRoot);
|
WebGUI::Config::loadAllConfigs($webguiRoot);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "WebGUI Started!\n";
|
print "WebGUI Started!\n";
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------
|
||||||
|
sub getWebGUIModules {
|
||||||
|
my $filename = $File::Find::dir."/".$_;
|
||||||
|
return unless $filename =~ m/\.pm$/;
|
||||||
|
my $package = $filename;
|
||||||
|
$package =~ s/^\/data\/WebGUI\/lib\/(.*)\.pm$/$1/;
|
||||||
|
$package =~ s/\//::/g;
|
||||||
|
push(@modules,$package);
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue