When setting up your CGI environment, many errors are caused by
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 "
script headers" this could be caused by a variety of reasons but
indicates that your script exited with an error. In cases like this,
error message or nothing at all was output instead of the
Type as the first line of output from the CGI program. Below are
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 written in Perl, run
perl -wcon the file to check syntax. If it is written in PHP, run
php -lon 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 your application is written in PHP, you can direct the error messages to a file of your choice using a custom php.ini file. The following would direct all errors and warnings to a file called errors.txt:
error_log = errors.txt
log_errors = On
error_reporting = E_ALL
display_errors = Off
- If this 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.