"Your program doesn't work". Such reports cause technical support staff to be pulling their hair out. "In what way did it fail" they'll ask, hoping for some clue that can point them towards their caller's problem.
So why does on earth does an Apache httpd web server report:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
whenever anything goes wrong; it's roughly saying "That didn't work" !!
It's intentional! ... Httpd gives a generic message for all failures that may relate to scripts its running and how it's configured exactly so that the web site visitor who gets the message
won't be able to work out what's going wrong and
won't be able to glean internal / structure information that can help him find any weaknesses there may be.
The
web developer who looks after the web server, though, will be able to look in the log files and find a better message - such as:
[Thu Mar 30 20:02:44 2006] [error] [client 192.168.200.66] Undefined subroutine &main::loaltime called at /home/vweb/cgi-bin/t500.pl line 3.
which tells me that the Perl programmer who wrote the script wrote a call to a function loaltime rather than one called lo
caltime ... easily fixed!
If you want to change the less than helpful error message / error response page to your own less that helpful error page, you can use and ErrorDocument directive in your httpd.conf file, of in a .htaccess file if you want to do it on a per-directory basis. Example:
ErrorDocument 500 "/resources/failed500.html"
where the file failed500.html if your error page (written 2006-03-30, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P221 - Perl on the Web [433] FTP - how to make the right transfers - (2005-09-01)
[493] Running a Perl script within a PHP page - (2005-11-12)
[590] Danny and Donna are getting married - (2006-02-03)
[641] Simple but rugged form handling demo - (2006-03-10)
[687] Presentation, Business and Persistence layers in Perl and PHP - (2006-04-17)
[975] Answering ALL the delegate's Perl questions - (2006-12-09)
[1198] From Web to Web 2 - (2007-05-21)
[2551] Perl and the Common Gateway Interface - out of fashion but still very useful? - (2009-12-26)
[3875] Using CGI and Perl to put a simple application online. Sometimes still the best way. - (2012-09-30)
A603 - Web Application Deployment - Further httpd Configuration [345] Spotting a denial of service attack - (2005-06-12)
[466] Separating 'per instance' data from binaries and web sites - (2005-10-16)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[550] 2006 - Making business a pleasure - (2006-01-01)
[631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
[649] Denial of Service ''attack'' - (2006-03-17)
[755] Using different URLs to navigate around a single script - (2006-06-11)
[853] To list a directory under httpd on a web server, or not? - (2006-09-02)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[1080] httpd.conf or .htaccess? - (2007-02-14)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[1355] .php or .html extension? Morally Static Pages - (2007-09-17)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1551] Which modules are loaded in my Apache httpd - (2008-02-23)
[1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
[1564] Default file (MiMe types) for Apache httpd and Apache Tomcat - (2008-03-04)
[1566] Strange behaviour of web directory requests without a trailing slash - (2008-03-06)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1636] What to do if the Home Page is missing - (2008-05-08)
[1707] Configuring Apache httpd - (2008-07-12)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1767] mod_proxy and mod_proxy_ajp - httpd - (2008-08-22)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1954] mod_rewrite for newcomers - (2008-12-20)
[1955] How to avoid duplicating web page maintainance - (2008-12-20)
[1974] Moving a directory on your web site - (2009-01-03)
[2060] Database connection Pooling, SSL, and command line deployment - httpd and Tomcat - (2009-03-01)
[2272] Monitoring and loading tools for testing Apache Tomcat - (2009-07-07)
[2478] How did I do THAT? - (2009-10-26)
[2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3449] Apache Internal Dummy Connection - what is it and what should I do with it? - (2011-09-19)
[3635] Parse error: parse error, unexpected T_STRING on brand new web site - why? - (2012-03-03)
[3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)
[3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
[4001] Helping search engines with appropriate 400 error codes - (2013-02-11)
[4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
Some other Articles
Database design - get it right from first principlesPHP Image viewing applicationRuby course - oops - it's not happeningPython to MySQLAn unhelpful error message from Apache httpdDressed up for a phone callStopping and restarting Apache httpd cleanlyWeb Application ComponentsKeeping the visitors happy and browsingThe ternary operator in Python