Это звучит достаточно просто, но у меня чертовски много времени, чтобы заставить его работать. Apache ожидает, что первая строка моего скрипта скажет #!<path_to_cmd_shell>
И я не хочу использовать Perl или что-то еще, я хочу использовать c:\windows\system32\cmd.exe
Но не уходи.
Когда я запускаю остальную часть файла cmd из командной строки, он работает должным образом.
У меня даже есть тестовая cgi, которая делает это:
@echo off
echo Content-Type: text/html
echo.
echo ^<html^>^<head^>^</head^>^<body^>hi from stu the cgi ^</body^>^</html^>
и это работает.
Но когда я изменяю сценарий для запуска другого exe (выходом которого будет ответ cgi), я получаю все виды преждевременного завершения заголовков сценария.
Я предполагаю, что это как-то связано с выводом exe, который не возвращается через вывод оболочки.
Есть идеи, как это сделать?
Думаю, твоя догадка верна. Файл exe, вероятно, пишет на экран, а не stdout
.
Простите, что говорю это, если я ошибаюсь, но знает ли Apache, как выполнить файл CMD? По сути, я ожидал, что вам придется передать скрипт apache в понятной для него форме. Возможно, вам бы больше повезло, если бы сценарий perl выполнял CMD и передавал вывод таким образом, вместо того, чтобы пытаться напрямую выполнить сценарий CMD.