При отладке apache2 и web.py обычно хорошо отлавливать ошибки в журнале ошибок apache. Например, когда вы получаете внутреннюю ошибку сервера, это означает, что ваше приложение по какой-либо причине ничего не вернуло.
В Linux я просто смотрю журнал ошибок в отдельном терминале ...
tail -f /var/log/apache2/error_log
или
tail -f /var/log/httpd/error_log
или что-то в зависимости от вашего дистрибутива. Если есть опечатка или сообщение об ошибке или что-то еще, вы получите типичную трассировку стека Python в своем журнале ошибок, даже если вы получите внутреннюю ошибку сервера в браузере.