Skip to content

A free open source content management system and web application framework. The most widely deployed mod_perl application on the planet.

Notifications You must be signed in to change notification settings

plainblack/webgui

Folders and files

NameName
Last commit message
Last commit date
Nov 12, 2012
Jun 24, 2010
Sep 11, 2013
Jan 7, 2014
Jan 7, 2014
Sep 20, 2012
Sep 12, 2013
Nov 17, 2012
Sep 27, 2013
Sep 14, 2009
May 29, 2009
Jun 13, 2010
Apr 16, 2012
Apr 18, 2010
Feb 10, 2012
Apr 13, 2010

Repository files navigation

This is the PSGI branch of WebGUI8

To try this out:

 0) Start from WebGUI 7.10.23 or the example .conf and create.sql that comes with WebGUI 8.
 1) Run testEnvironment.pl to install all new requirements.
 2) Get a new wgd from http://haarg.org/wgd
 3) Copy etc/WebGUI.conf.original to www.whatever.com.conf; edit it and set dbuser, dbpass, 
    dsn, uploadsPath (eg to /data/domains/www.example.com/public/uploads/), extrasPath, 
    maintenancePage and siteName
 4) Set WEBGUI_CONFIG to point at your new config file
 5) $ export PERL5LIB='/data/WebGUI/lib'
 6) $ wgd reset --upgrade
 7) $ cd /data/WebGUI (or whereever you unpacked it)
 8) $ rsync -r -a (or cp -a) /data/WebGUI/www/extras /data/domains/www.example.com/public/
    (from whereever you unpacked it to whereever you pointed extrasPath to; note 'extras'
    goes inside 'public', both under where extrasPath points to)

To start it:

 8) $ plackup app.psgi

See docs/install.txt for more detailed installation instructions.

Currently, the best performance is achieved via:

 plackup -E none -s Starman --workers 10 --disable-keepalive

You can benchmark your server via:

 ab -t 3 -c 10 -k http://dev.localhost.localdomain:5000/ | grep Req

I'm currently getting 370 requests/second, whereas I'm getting 430/second on the non-PSGI WebGUI8 branch.

= ARCHITECTURE =

* The root level app.psgi file loads all the config files found and
  loads the site specific psgi file for each, linking them to the
  proper host names.
* The site psgi file uses the WEBGUI_CONFIG environment variable to find the config.
* It instantiates the $wg WebGUI object (one per app).
* $wg creates and stores the WebGUI::Config (one per app)
* $wg creates the $app PSGI app code ref (one per app)
* WebGUI::Middleware::Session is wrapped around $app at the outer-most layer so that it can open and
  close the $session WebGUI::Session. Any other wG middleware that needs $session should go in between
  it and $app ($session created one per request)
* $session creates the $request WebGUI::Session::Request and $response WebGUI::Session::Response
  objects (one per request)


About

A free open source content management system and web application framework. The most widely deployed mod_perl application on the planet.

Resources

Stars

Watchers

Forks

Packages

No packages published