## 18.2.10 Common problems and solutions

- Most HTTP servers buffer the output from CGI scripts until the script is completed. This means that it is not possible to display a progress report on the client's display while the script is running.

- Check the installation instructions above.

- Check the HTTP server's log files. ("`tail -f logfile`" in a separate window may be useful!)

- Always check a script for syntax errors first, by doing something like "`python script.py`".

- If your script does not have any syntax errors, try adding "`import cgitb; cgitb.enable()`" to the top of the script.

- When invoking external programs, make sure they can be found. Usually, this means using absolute path names -- PATH is usually not set to a very useful value in a CGI script.

- When reading or writing external files, make sure they can be read or written by the userid under which your CGI script will be running: this is typically the userid under which the web server is running, or some explicitly specified userid for a web server's "`suexec`" feature.

- Don't try to give a CGI script a set-uid mode. This doesn't work on most systems, and is a security liability as well.