使用PHP获取cgi-bin路径


Get cgi-bin path with PHP

有没有一种方法可以使用PHP动态查找用户的cgi-bin路径并向其写入文件?

例如,我想写一个PHP应用程序,它也使用Perl脚本来实现额外的功能(没有它就不会中断),在第一次运行时,我想获得cgi-bin的路径或用户目录的名称,并将脚本写入目录中,以便应用程序可以调用它,用户只需最少的安装(即将应用程序上传到目录,然后运行index.php)。

这可能吗?还是我的梦想远远超出了我的实际能力?

我看到的最简单的解决方案是使用正则表达式检查从用户根目录开始的名为/cgi/的目录,然而,这似乎不是一个完全可靠的方法

__FILE__在Perl和PHP下都会为您提供当前执行的文件的名称。

没有合理的方法。

服务器可以配置为在零个、一个或多个不同的位置执行CGI程序,这些位置的名称中都不必有"CGI"。

您可以尝试解析服务器配置,以确定哪些位置(如果有的话)是以这种方式设置的,但您必须为每个服务器编写一个单独的解析器,并且每个解析器都非常复杂。即使限制在Apache上,也必须处理基于虚拟主机<file><directory><location>ScriptAlias.htaccess等的过滤。