Я недавно обнаружил, что CGI-скрипты могут быть написаны практически на любом языке, который может печатать на стандартный вывод.Я написал небольшой скрипт guile cgi, который работает на моей локальной установке apache, но не на моем общем хосте:
#!/usr/local/bin/guile -s
!#
(display "Content-Type: text/html")
(newline)
(newline)
(display "hi")
(newline)
Это вывод, когда я запускаю скрипт из оболочки на моем хосте поверхssh:
$ ./scheme.cgi
Content-Type: text/html
hi
Итак, очевидно, что на моем хосте установлен guile.Однако, когда я пытаюсь получить доступ к этому файлу в браузере, я получаю «500 Internal Server Error».Просматривая мои журналы ошибок, я вижу, что получаю страшную ошибку «преждевременный конец заголовков скриптов»:
[server.com] [Tue Aug 17 00:54:19 2010] [error] [client xx.xx.xx.xxx] (2)No such file or directory:
exec of '/home/www/vhosts/jcw.geekisp.com/cgi-bin/scheme.cgi' failed
[server.com] [Tue Aug 17 00:54:19 2010] [error] [client xx.xx.xx.xxx] Premature end
of script headers: scheme.cgi
Поскольку я на общем хосте, использование mod_lisp или реализации fastcgi из guile невопрос.При этом, что может быть проблема здесь?Подобные сценарии cgi, которые я написал на python, perl, ruby и sh, работают на сервере без ошибок.Я вижу, что на хосте установлена guile 1.8.7, но моя локальная машина установлена на новейшую версию.
Я понимаю, что это невероятно нишевый вопрос, любая помощь будет признательна!