Hi,
I'm running Web2py version 1.89.1 and attempting to set up a
production enviornment (Windows Server 2008) on our Intranet running
behind Apache with mod_wsgi & mod_auth_sspi (for grabbing the current
Windows username). Since this is an Intranet application only, I'd
like to have access to both the admin site & my web2py application.
My goal is to be able to have 2 entry points:
App 1) http://<server>/<appname> - For normal users to access the
web2py app we built
App 2) https://<server>/admin (SSL) - For developers to access the
web2py admin interface at https://<server>/admin/default/site
With my current apache confirguation, when I first start apache I can
access https://<server>/admin just fine, however if I then switch to
http://<server>/<appname>, web2py issues the following ticket:
Traceback (most recent call last):
File "C:\aproj\web2py\gluon\main.py", line 453, in wsgibase
session._try_store_on_disk(request, response)
File "C:\aproj\web2py\gluon\globals.py", line 382, in
_try_store_on_disk
cPickle.dump(dict(self), response.session_file)
File "C:/python\lib\copy_reg.py", line 74, in _reduce_ex
getstate = self.__getstate__
File "C:\aproj\web2py\gluon\sql.py", line 740, in __getattr__
return dict.__getitem__(self,key)
KeyError: '__getstate__'
At this point I can revisit https://<server>/admin and it comes up
fine just as it did before. If I restart Apache and revese the order
(access non-SSL first), our custom app comes up just fine, but then
the admin app will exhibit the same behavior and issue a ticket.
Basically, once I start Apache I seem to have to stay on either SSL or
Non-SSL, but can't switch between both -- the second app to be
accessed with always issue a ticket. Is it possible to use Apache
VirtualHosts to access both the admin site and non-admin site using
mod_wsgi or would I also need something like mod_rewrite or to handle
this via routes.py? I'd like to avoid installing Web2py as a Windows
service just for the ability to access the admin site if possible.
Here are the relevant portions of my httpd.conf:
WSGIPythonHome "C:/python"
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "C:/aproj/web2py/applications"
ServerName server1
<Directory "C:/aproj/web2py">
Order allow,deny
Deny from all
</Directory>
<Location "/">
Order allow,deny
Allow from all
AuthName "Stadion Lunch Application"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain hq.ft
SSPIOmitDomain On
SSPIOfferBasic Off
SSPIBasicPreferred Off
SSPIUsernameCase lower
SSPIPerRequestAuth On
Require group "HQ\IT"
#require valid-user
</Location>
<LocationMatch "^(/[\w_]*/static/.*)">
Order Allow,Deny
Allow from all
</LocationMatch>
WSGIScriptAlias / "C:/aproj/web2py/wsgihandler.py"
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "C:/aproj/web2py/applications/admin"
ServerName server1admin
<Directory "C:/aproj/web2py">
Order allow,deny
Deny from all
</Directory>
<Location "/">
Order allow,deny
Allow from all
AuthName "Stadion Lunch Application"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain hq.ft
SSPIOfferBasic Off
SSPIOmitDomain On
SSPIBasicPreferred Off
SSPIUsernameCase lower
SSPIPerRequestAuth On
Require group "HQ\IT"
#require valid-user
</Location>
WSGIScriptAlias / "C:/aproj/web2py/wsgihandler.py"
SSLEngine On
SSLCertificateFile conf/server.crt
SSLCertificateKeyFile conf/server.key
</VirtualHost>
Any help would greatly be appreciated!
Thanks,
Adam