Third party script debugging on remote server ...

Graham Dumpleton Graham.Dumpleton at gmail.com
Thu Apr 19 01:31:50 CEST 2007


After calling whatever it is that is writing to standard output/error,
do:

  import sys
  sys.stdout.flush()
  sys.stderr.flush()

This should cause any buffered data to be immediately flushed to the
main Apache error log, ie., don't look in any virtual host logs, check
the main one.

Graham

On Apr 19, 9:15 am, dbee <daraburk... at gmail.com> wrote:
> Right. I've got a really, really annoying/difficult/time consuming
> problem with my development environment. I'm using django to build a
> web app with paypal integration. My server is hosted remotely, and it
> is receiving IPN (payment notifications) POST requests from Paypal.
> I've checked on google and irc and this is my last shot at solving
> this before I go mad ... :-(
>
> The problem is that I can't debug those POST requests. Browser
> debugging is out of the question obviously cause I'm not at the
> computer, ( and it doesn't have X ).
>
> I've tried cgitb but that doesn't seem to work at all ...
>
> import cgitb; cgitb.enable(display=0,logdir='/tmp/',format='plain')
> import cgitb; cgitb.enable()
>
> ... neither of those commands have any effect. Although I do log other
> parts of the script to /tmp, so I know that it's reachable...
>
> mod_pythonabsolutely refuses to error_log to the apache error_log. I
> have restarted it and it still won't flush whatever error buffer it
> may ( or may not ) have stored.
>
> I can re-constitute the requests in my browser using a GET request.
> But frankly, that's kinda messy - there are lots of paypal IPN
> combinations and I may have to integrate other applications with
> paypal. So ideally speaking I'm looking for a proper debugging
> environment for this kind of thing ...
>
> Basically, I either wantmod_pythonto start error_logging properly,
> or I want some type of working traceback environment to be available.
> Help !
>
> Server version: Apache/2.0.52
> Server built:   Aug 13 2006 03:29:43
> CentOS4.x: (RedHat Clone)mod_python.i386                          3.1.3-5.1
> installed
>
> # httpd.conf
>
> <VirtualHost *:80 >
>
>  ServerName mydomain.biz
>  ServerAliaswww.mydomain.biz
>  SetHandlermod_python
>  PythonPath "['/home/babo/django'] + sys.path"
>  PythonHandler django.core.handlers.modpython
>  SetEnv DJANGO_SETTINGS_MODULE mydomain.settings
>
>   <Location "/libs/media/">
>    SetHandler None
>    Options None
>   </Location>
>
> </VirtualHost>
>
> My python.conf: ( seems pretty normal )
>
> #
> #Mod_pythonis a module that embeds the Python language interpreter
> # within the server, allowing Apache handlers to be written in Python.
> #
>
> LoadModule python_module modules/mod_python.so
>
> # Override type-map handler for /var/www/manual
> <Directory "/var/www/manual/mod/mod_python">
>         <Files *.html>
>                 SetHandler default-handler
>         </Files>
> </Directory>
>
> # This will cause files beneath /var/www/html with the extension .spam
> # to be handled by the Python script /var/www/html/eggs.py
> #
> #<Directory /var/www/html>
> #    AddHandler python-program .spam
> #    PythonHandler eggs
> #</Directory>
>
> # This will cause all requests to the /python heirachy of your
> # webserver to be handled by the python script /path/to/myhandler.py
> #
> #<Location /python>
> #    SetHandler python-program
> #    PythonPath "sys.path + ['/path/to']"
> #    PythonHandler myhandler
> #</Location>
>
> # This will cause all requests to the /python heirachy of your
> # webserver to be handled bymod_python'sPublisher handler
> # (seehttp://localhost/manual/mod/mod_python/hand-pub.html)
> #
> # This will cause the output of all requests to files beneath
> # /var/www/html with the extension .flt to be filtered through
> # the Python script /var/www/html/filter.py
> #
> #<Directory /var/www/html>
> #    PythonOutputFilter filter MYFILTER
> #    AddOutputFilter MYFILTER .flt
> #</Directory>





More information about the Python-list mailing list