This means that the cgi script did not execute properly. Â There are several causes that can generate this error so a few things would need to be checked.
1) check the /var/log/httpd/suexec_log. Â It contains any errors that would be as a result of not having correct permissions on the file. Â The file needs to be in a cgi-bin and must have the owner/group as the username who owns the site. Â If it's owned by anyone else, it will not run. Â Also, the script must have execute permission. Â The most common chmod permission is 755. Â Go through all directories from the public_html down to the directory the script is in, and make sure they're all set to 755 (public_html can be 750 *only* if it has a group of apache).
If the suexec_log only shows the script being run, then the cause may be with the script code itself. Â The easiest way to figure out script coding problems is to first run the script manually from an ssh prompt.
cd /home/username/domains/domain.com/public_html/cgi-bin
./script.cgi
#!/usr/bin/perl
and#!/usr/local/bin/php
This code must appear on the first line of the script. Â Somtimes a file is uploaded in windows format so the trailing newline (return) character is formed incorrectly and the file would need to be reuploaded in a different format.Other errors that would be generated when running the script manually from ssh would be missing perl modules, in which case you'll need to install them yourself. Â Cpan is the easiest method to install new perl modules, eg:
perl -e shell -MCPAN
install Bundle::DBD::mysql
perl -MCPAN -e 'install Bundle::DBD::mysql'