Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 需要具有特定条件的http服务器_Web Services_Cgi_Relative Path_Cgi Bin - Fatal编程技术网

Web services 需要具有特定条件的http服务器

Web services 需要具有特定条件的http服务器,web-services,cgi,relative-path,cgi-bin,Web Services,Cgi,Relative Path,Cgi Bin,我一直在为我的项目寻找一个Web服务器,但我一直不能满足自己。我需要一个http服务器,它支持编译的CGI脚本(exe),用于Windows,并且必须能够使用相对路径。如果服务器能够尽可能地最小化/轻量级,这将是一个额外的好处 到目前为止,我搜索中最困难的部分是找到一个既支持CGI又具有相对路径支持的服务器。当我说相对路径时,我指的是服务器根目录。我希望能够将其与我的项目一起打包,因此conf文件中的路径不能是绝对路径 我唯一能满足所有标准的是Abyss Web,但他们的许可证是专有的,仅供个人

我一直在为我的项目寻找一个Web服务器,但我一直不能满足自己。我需要一个http服务器,它支持编译的CGI脚本(exe),用于Windows,并且必须能够使用相对路径。如果服务器能够尽可能地最小化/轻量级,这将是一个额外的好处

到目前为止,我搜索中最困难的部分是找到一个既支持CGI又具有相对路径支持的服务器。当我说相对路径时,我指的是服务器根目录。我希望能够将其与我的项目一起打包,因此conf文件中的路径不能是绝对路径

我唯一能满足所有标准的是Abyss Web,但他们的许可证是专有的,仅供个人免费使用

编辑:
我在我的方式中发现了错误。我在根目录下通过cmd启动了这个过程。因此,apache在conf中使用的相对路径是相对于我所在的根位置的。通过更改为root dir并在那里运行进程,一切都可以像gbjbaanb提到的那样工作。但我想我问题的背景可能仍然有效。如果我将服务器作为我的程序(C#.NET)中的进程运行,那么“当前目录”是什么?在启动当前目录环境变量之前,是否必须确保已对其进行了更改?

Apache有什么问题?您可以将DocumentRoot设置为任何目录(尽管我还没有在C:上的Windows上尝试过)


它也适用于webserver根目录-不要以/开头,它可以工作。

Apache有什么问题?您可以将DocumentRoot设置为任何目录(尽管我还没有在C:上的Windows上尝试过)


它也适用于Web服务器根目录-不要以/开头,它可以工作。

我已经快速启动了我应该使用的服务器的模拟版本,而且gbjbaanb似乎也适用于Windows。与*nix一样,相对路径基于apache启动时的当前目录。因此,对于Windows,只需确保将当前目录的环境变量设置为希望apache与之相关的环境变量。对于.NET,您只需适当地设置System.IO.Directory.SetCurrentDirectory()或System.Environment.CurrentDirectory。我想对于*nix,您可以在运行之前将cd放入目录中,或者使用chroot。

我已经快速启动了我应该使用的服务器的模拟版本,看起来gbjbaanb对Windows也是有效的。与*nix一样,相对路径基于apache启动时的当前目录。因此,对于Windows,只需确保将当前目录的环境变量设置为希望apache与之相关的环境变量。对于.NET,您只需适当地设置System.IO.Directory.SetCurrentDirectory()或System.Environment.CurrentDirectory。我想对于*nix,您可以在运行之前将cd放入目录中,或者使用chroot