Skip to content

Commit 57bef51

Browse files
committedFeb 10, 2012
Merge branch 'master' of github.com:plainblack/webgui
2 parents 3fbf953 + 202d073 commit 57bef51

File tree

2,522 files changed

+61731
-88913
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,522 files changed

+61731
-88913
lines changed
 

‎.proverc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--recurse

‎README

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
This is the PSGI branch of WebGUI8
2+
3+
To try this out:
4+
5+
0) Start from WebGUI 7.10.23 or the example .conf and create.sql that comes with WebGUI 8.
6+
1) Run testEnvironment.pl to install all new requirements.
7+
2) Get a new wgd from http://haarg.org/wgd
8+
3) Copy etc/WebGUI.conf.original to www.whatever.com.conf; edit it and set dbuser, dbpass,
9+
dsn, and uploadsPath (eg to /data/domains/www.example.com/public/uploads/)
10+
4) Set WEBGUI_CONFIG to point at your new config file
11+
5) $ export PERL5LIB='/data/WebGUI/lib'
12+
6) $ wgd reset --upgrade
13+
7) $ cd /data/WebGUI (or whereever you unpacked it)
14+
8) $ rsync -r -a (or cp -a) /data/WebGUI/www/extras /data/domains/www.example.com/public/
15+
16+
To start it:
17+
18+
8) $ plackup app.psgi
19+
20+
See docs/install.txt for more detailed installation instructions.
21+
22+
Currently, the best performance is achieved via:
23+
24+
plackup -E none -s Starman --workers 10 --disable-keepalive
25+
26+
You can benchmark your server via:
27+
28+
ab -t 3 -c 10 -k http://dev.localhost.localdomain:5000/ | grep Req
29+
30+
I'm currently getting 370 requests/second, whereas I'm getting 430/second on the non-PSGI WebGUI8 branch.
31+
32+
= ARCHITECTURE =
33+
34+
* The root level app.psgi file loads all the config files found and
35+
loads the site specific psgi file for each, linking them to the
36+
proper host names.
37+
* The site psgi file uses the WEBGUI_CONFIG environment variable to find the config.
38+
* It instantiates the $wg WebGUI object (one per app).
39+
* $wg creates and stores the WebGUI::Config (one per app)
40+
* $wg creates the $app PSGI app code ref (one per app)
41+
* WebGUI::Middleware::Session is wrapped around $app at the outer-most layer so that it can open and
42+
close the $session WebGUI::Session. Any other wG middleware that needs $session should go in between
43+
it and $app ($session created one per request)
44+
* $session creates the $request WebGUI::Session::Request and $response WebGUI::Session::Response
45+
objects (one per request)
46+
47+

0 commit comments

Comments
 (0)
Please sign in to comment.