Fork of WebGUI 7.10, maintained by Oqapi https://git.oqapi.nl/oqapi/webgui
Find a file
2011-04-27 19:11:09 -04:00
docs add migration docs for new admin on and toolbars 2011-04-19 10:44:14 -05:00
eg Add a missing newline. 2010-06-24 08:43:12 -07:00
etc add template toolkit to the default template parsers 2011-04-13 17:09:22 -05:00
lib add story manager and survey, adding some error messages for silent problems 2011-04-25 19:28:54 -05:00
sbin missing required module App::Cmd for WebGUI::Command 2011-04-11 13:33:46 -05:00
share default www_edit now returns template. add errors to edit template 2011-04-20 17:49:49 -05:00
t fix formbuilder tests for new flags 2011-04-13 17:53:06 -05:00
www only drag handles should drag asset 2011-04-22 18:05:56 -05:00
.gitignore Fixed #10967: Using a round bracket (parenthesis) in a macro. Unbalanced parentheses can now be escaped in macro calls using the backslash character. 2009-09-14 14:27:14 -04:00
.perltidyrc perltidyrc now placed where it can do the most good 2009-05-29 18:50:01 +00:00
.proverc adding proverc file 2010-06-13 06:15:34 -05:00
app.psgi Mount the app at the gateway, instead of at the root with downstream gateway handling. 2011-01-13 13:33:31 -08:00
asset_status.ods Add a sheet to track Roles. 2010-03-05 15:17:05 -08:00
benchmark.pl Logging fallback 2010-04-13 17:46:43 -04:00
README ImageMagick, not GD 2011-04-27 19:11:09 -04:00
TODO Minor improvements 2010-04-18 14:51:24 -04:00
WebGUI-Session-Plack.pm Added WebGUI::Requestion/Response 2010-04-06 19:35:06 -04:00

This is the PSGI branch of WebGUI8

To try this out:

 1) Run testEnvironment.pl to install Plack
 2) $ cd <WebGUI directory>
 3) $ plackup app.psgi

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.

= INSTALL =

* Recent Perl (5.12.1 or better)
* Install ImageMagick (http://www.imagemagick.org/, compile and install the source or binary package)
* Run sbin/testEnvironment.pl as root to install Perl modules
* MySQL with a user account
* Load share/create.sql
* Copy WebGUI.conf.original to something named after the site's URL and ending in .conf, 
  such as www.example.com.conf and edit it, making sure to insert your site's URL and
  the database connection information (dbuser, dbpass, dsn)
* wgd reset --uploads
* Continue with the UPGRADE instructions below 

= UPGRADE =

* Run sbin/testEnvironment.pl.  WebGUI 8 adds new dependencies.
* Update wgd.  Get it from http://haarg.org/wgd, put in /data/wre/prereqs/bin/ or /usr/local/bin,
  and do chmod ugo+x /data/wre/prereqs/bin/wgd to make it executable.  WebGUI has a new upgrades system 
  for wgd to support.  The old system silently ignores the new upgrade scripts.
* wgd reset --upgrade
  This is needed even for new WebGUI 8 installs.  The create.sql and WebGUI.conf.original are both
  from 7.10.x.
* rsync -r -a (or cp -a) /data/WebGUI/www/extras /data/domains/www.example.com/public/
* export PERL5LIB='/data/WebGUI/lib:/data/WebGUI/t/lib'
  Previously, this would break Apache if it were set; now it's required for the stuff plackup loads to
  find the rest of WebGUI.

= 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)