At my work place, we provide shared hosting and http 500 error is the most common in trouble tickets. Although everything is properly configured we still get reports of error.
Send MIME type
99% time - it was not servers fault at all. I found that the most common reason for HTTP 500 errors is not printing the MIME type before outputting data to the web browser. All you need following line before outputting data to the web browser:
print "Content-type: text/html\n\n";
Perl does not automatically generate HTML. Also try following few suggestions:
Permissions
You need to setup file permissions on perl script
chmod 755 perlscript.pl chmod +x perlscript.pl
Perl script location
It must be in cgi-bin directory (or directory configured to run perl). Some servers are configured to run your CGI scripts anywhere.
Error log file
Please check your log file to find errors in your Perl script.
tail -f /var/log/httpd/error.log tail -f /var/log/httpd/access.log
Debug
Pass -wc option to perl script at shell prompt, enter:
perl -wc myscript.pl
It will often point out exactly where the trouble is.
I am not perl guru but as a sys admin, I need to look after this kind of problems. What other techniques all of you follow to troubleshoot Perl http 500 error problem?
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 2 comments… read them below or add one }
Was browsing your site for something else I found this post. I can say use the CGI Perl module. It is more easy and you can avoid error 500. See CGI.pm doc @ here or
here
I suggest include the following line at the top of your perl script:
#!/usr/bin/perl –w
just my 2 cents