|
David Bear
David.Bear at asu.edu
Thu May 25 17:49:09 EDT 2006
On Thu, May 25, 2006 at 08:03:46PM +0200, Nicolas Lehuen wrote:
> Hi David,
>
> First of all, you may want to read your Apache error log to get more
> information. In some cases, for security reasons, the user gets a
> simple 404 error whereas there is a more precise error message in the
> log.
This was the first place I looked. The only message in the error_log
is:
[Thu May 25 12:34:09 2006] [notice] mod_python: (Re)importing module
'tddb' with path set to '['/work/servers/www/htdocs/test']'
[Thu May 25 12:34:10 2006] [notice] mod_python: (Re)importing module
'tddb' with path set to '['/work/servers/www/htdocs/test']'
[Thu May 25 12:34:10 2006] [notice] mod_python: (Re)importing module
'tddb' with path set to '['/work/servers/www/htdocs/test']'
[Thu May 25 14:09:49 2006] [notice] mod_python: (Re)importing module
'mod_python.publisher'
[Thu May 25 14:09:49 2006] [notice] mod_python: (Re)importing module
'tddb' with path set to '['/work/servers/www/htdocs/test']'
[Thu May 25 14:09:49 2006] [notice] mod_python: (Re)importing module
'index' with path set to '['/work/servers/www/htdocs/test']'
> If you cannot read the error log, you can try switching on the
> PythonDebug configuration directive to get more detailled error
> messages on the client side. Don't forget to remove it when launching
I have debug on in the directive file:
---------
cat .htaccess
AddHandler python-program .py
PythonHandler mod_python.publisher
PythonDebug On
------------
> your site on a production server, though, because those error messages
> usually contain stack trace, which gives a little bit more data to a
> would-be hacker than you would like.
thanks. good advice. this would be a good think to document in a
modpython best practices.
>
> BTW, even if this should not lead to the problem you observe, you are
> using the handler's style of coding instead of the publisher style.
> Published functions or methods do not return apache.OK, they simply
> return a string that needs to be returned to the client, or None if
> req.write() is used to send content to the client. Also, you do not
> need to use req.send_http_headers().
ok. this wasn't clear. I've updated the code to be
=====================================
from mod_python import session
page1 = '''
<html>
<head>
<title>page 1 </title>
</head>
<body>
this is page 1 boo
</body>
</html>
'''
def index(req):
return page1
def info(req):
res = []
thereq = dir(req)
for i in thereq:
res.append(i)
return("%s " % res)
==================================
and I still get a 404 error. It would be nice if there were a way to
start a python interpreter, and import the module just to see if there
were some other reason for the error -- syntax, indentation...
>
> All this is assuming that you are using the latest mod_python release,
> namely the 3.2.8 one. If you don't then I strongly suggest you
> upgrade, because you've missed more than one year of bugfixes.
>
sorry, I should have included that. I'm using modpython 3.1.x and
apache 2.0.53 all packaged by suse. Since this is suse 9.3 I'm a
little hesitant to upgrade the modpython for fear of breaking
something else suse might have as a dependancy.
--
David Bear
phone: 480-965-8257
fax: 480-965-9189
College of Public Programs/ASU
Wilson Hall 232
Tempe, AZ 85287-0803
"Beware the IP portfolio, everyone will be suspect of trespassing"
|