Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

(jeffa) Re: Easier Linux/Unix remote CGI Debugging

by jeffa (Bishop)
on Apr 09, 2001 at 17:40 UTC ( [id://71002] : note . print w/replies, xml ) Need Help??

in reply to Easier Linux/Unix remote CGI Debugging

Good stuff! I just wanted to stress the importance of adding the following line to your CGI script while debugging:
use CGI::Carp qw(fatalsToBrowser); # You are using CGI, right?
Now all fatal errors are echoed to the browser as well as the error log file. This is a must if you can't view the web server's error log. If that is the case, then perl -cw foo.cgi is also a must.

Also, if you find yourself on a foreign ISP's box, having to fix someone's CGI script, and there is no /etc/httpd/logs/error_log, you can find which error log file is being used by Apache by searching through [path to apache root]/conf/httpd.conf

Apache isn't always located in /etc/httpd/. When I install Apache on a box, I always install it in /usr/local/apache/. The mileage varies. :)



Replies are listed 'Best First'.
Re: (jeffa) Re: Easier Linux/Unix remote CGI Debugging
by Hero Zzyzzx (Curate) on Apr 09, 2001 at 17:52 UTC

    Thanks for the thoughts! Maybe I should put the locate command in here too (of course root needs to create the locate db and allow other users to access it), you can just do locate filename on many boxes to find a file (like error_log).

    The reason I didn't put in to use CGI::Carp qw(fatalsToBrowser); (something that I use all the time) was because I thought I'd focus this tutorial around *nix commands that help you with remote perl debugging/coding, and leave the perl tricks to more experienced monks.

    I thought I might be good to separate *nix tricks from perl debugging tricks in general, in an effort to make Perlmonks more non-*nix friendly.