Я недавно обнаружил, что CGI-скрипты могут быть написаны практически на любом языке, который может печатать на stdout. Я написал небольшой скрипт 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-скрипты I ' Мы написали на python, perl, ruby и sh и работаем на сервере без ошибок. Я вижу, что на хосте установлена guile 1.8.7, но моя локальная машина установлена на новейшую версию.
Я понимаю, что это невероятно нишевый вопрос, любая помощь будет признательна!