Gavin
gavin at sz.net.cn
Tue Feb 21 06:14:00 EST 2006
> > On 21/02/2006, at 9:25 PM, Gavin wrote: > >>> On 21/02/2006, at 5:41 PM, Gavin wrote: >>> >>>> hello Graham >>>> >>>> Thank you! >>>> My configuration is as following: >>>> >>>> <Directory "/data/HTTPD/htdocs/FeedBack"> >>>> >>>> AddHandler mod_python .m >>> >>> Do you really mean ".m"? Don't you mean ".psp, how else can you use >>> "sid.psp" >>> as file name? >>> >> Right. I use sid.m. > > In the URL, or for the file? Its a bit confusing. Is there are reason > you want > to use ".m" extension? > > Anyway, when I take the PSP code you posted and which you referred to > as "sid.psp" and put in a directory with .htaccess file of: > > AddHandler mod_python .psp > PythonHandler mod_python.psp > PythonDebug On > > If I access it as sid.psp in URL, the code works as expected. > >>>> PythonHandler mod_python.psp >>>> #PythonHandler mod_python.publisher >>>> PythonPath "['/data/HTTPD/py_api']+['/data/HTTPD/htdocs/FeedBack'] >>>> +sys.path" >>>> PythonDebug Off >>>> Options Indexes FollowSymLinks >>>> Order deny,allow >>>> Allow from all >>>> >>>> </Directory> >>>> >>>> I don't use PythonOption to override the either "session_dbm" or >>>> "session_directory" >>>> >>> >>> All I can suggest then is to look for the file: >>> >>> /tmp/mp_sess.dbm.db >>> >>> or something named similarly. I don't think it is meant to have extra >>> ".db" extension >>> but on my Mac there is one for some reason. >>> >>> >> Cann't found any file like mp* under /tmp > > All I can suggest then is to modify lib/python/mod_python/Session.py in > mod_python source code and add in some debug statements to see what > session database name is being set to. > > class DbmSession(BaseSession): > > def __init__(self, req, dbm=None, sid=0, secret=None, > dbmtype=anydbm, > timeout=0, lock=1): > > if not dbm: > opts = req.get_options() > if opts.has_key("session_dbm"): > dbm = opts["session_dbm"] > else: > dbm = os.path.join(opts.get('session_directory', > tempdir), 'mp_sess.dbm') > > self._dbmfile = dbm > self._dbmtype = dbmtype > > # XXX DEBUG > > apache.log_error("dbmfile=%s"%self._dbmfile) > > Reinstall mod_python and restart Apache. > > Then when running test, look in Apache error_log to see where it > thinks it is getting > put. See if file exists if not in /tmp. > mp_sess_test.dbm file doesn't exists in /tmp. error_log file are as following: [Tue Feb 21 19:23:14 2006] [error] dbmfile=/tmp/mp_sess_test.dbm [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: Traceback (most recent call last): [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch\n result = object(req) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/psp.py", line 302, in handler\n p.run() [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/psp.py", line 213, in run\n exec code in global_scope [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/data/HTTPD/htdocs/intapp/sid.m", line 6, in ?\n S=Session.Session(req) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 699, in Session\n timeout=timeout, lock=lock) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 301, in __init__\n timeout=timeout, lock=lock) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 129, in __init__\n if self.load(): [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 188, in load\n dict = self.do_load() [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 322, in do_load\n dbm = self._get_dbm() [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/site-packages/mod_python/Session.py", line 309, in _get_dbm\n result = self._dbmtype.open(self._dbmfile, 'c') [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/anydbm.py", line 83, in open\n return mod.open(file, flag, mode) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/dbhash.py", line 16, in open\n return bsddb.hashopen(file, flag, mode) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/bsddb/__init__.py", line 285, in hashopen\n e = _openDBEnv() [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: File "/usr/local/lib/python2.4/bsddb/__init__.py", line 339, in _openDBEnv\n e.open('.', db.DB_PRIVATE | db.DB_CREATE | db.DB_THREAD | db.DB_INIT_LOCK | db.DB_INIT_MPOOL) [Tue Feb 21 19:23:14 2006] [error] [client 202.104.96.163] PythonHandler mod_python.psp: DBError: (137263248, 'Unknown error 137263248') > Graham >
|