Если выдается ошибка malformed header from script - это означает что не выдалось Content-Type: text/html\n\n
Если выдается ошибка Premature end of script headers - это означает, что не найден интерпретатор запуска скрипта.
Например, если скрипт писался с концами строк \r\n, а запускается в юниксе - то такая ошибка и вылезет.
Лечение: fromdos < скрипт1 > скрипт2 ; mv скрипт2 скрипт1
или: perl -e 's/\r//gs' -pi скрипт
PS. сорри за подозрения в "измене"
"No! Try not! Do. Or do not. There is no try." -- Yoda