Debugging Programs
When setting up your CGI environment, many errors are caused by incorrect
access permissions. Make sure cgi-bin and script permissions are set
according to the directions - the same permissions need to apply to any
other directory your script wants to write/read from.
If you see the "Internal Server Error" or "premature end of
script headers" this could be caused by a variety of reasons but usually
indicates that your script exited with an error. In cases like this, some
error message or nothing at all was output instead of the Content
Type as the first line of output from the CGI program. Below are some
things to try in order to debug the problem:
Run the script on the command line to make sure it does not generate errors. If it is written in Perl, run perl -wc on the file to check syntax. If it is written in PHP, run php -l on the file to check syntax.
Try using suexec's debug mode. It is activated by creating a file called .suexecd in the CGI program directory. This causes suexec to print the Content Type before the target CGI program is even run, and also routed all stderr output to stdout, thereby displaying it in the browser. You'll be able to see what would have otherwise gone to the server's error log.
If the above doesn't help, or if the error message is about something server-dependent, contact the CGI administrators by submitting a HelpSU ticket. Note that we will do our best to help you but sometimes your script may be too complex for us to figure out what is wrong.



