Cgi

如何將 cmd.exe cmd 文件作為 windows cgi 的 apache 執行

  • September 3, 2009

這聽起來很簡單,但我很難讓它發揮作用。Apache 希望我的腳本的第一行說#!<path_to_cmd_shell> And I don’t want to use perl or else, I want to use c:\windows\system32\cmd.exe But no go。

當我從 cmd 提示符執行 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的輸出有關,而不是通過shell的輸出管道返回。

知道如何做到這一點嗎?

我認為你的猜測是正確的。exe 文件可能會寫入螢幕而不是stdout.

如果我錯了,請原諒我這麼說,但是 Apache 知道如何執行 CMD 文件嗎?本質上,我希望您必須以 apache 可以理解的方式將腳本提供給它。也許你會更幸運地嘗試讓 perl 腳本執行 CMD 並以這種方式流式傳輸輸出,而不是嘗試直接執行 CMD 腳本。

引用自:https://serverfault.com/questions/62156