如何在 Windows 10 中关联 cgi 扩展
Posted
技术标签:
【中文标题】如何在 Windows 10 中关联 cgi 扩展【英文标题】:How to asociate cgi extension in windows 10 【发布时间】:2021-04-24 09:10:14 【问题描述】:我使用带有 Perl 的 Windows 7,使用 cgi 的 apache,一切都是正确的 现在我有 windows 10。apache 运行良好,但 cgi 扩展与 perl 的关联不起作用。
我已尝试解决此问题,但没有任何效果。
我正在使用 xampp。我已经在 apache 中编辑了 htconf 文件。
在我的脚本中,我有 #!/usr/bin/perl
行,但它不起作用。如果我将线路更改为
#!C:/Perl/bin/perl.exe
然后它可以工作,但这不是最好的方法,因为每次我需要上传脚本时,我都必须将其更改为 #!/usr/bin/perl
【问题讨论】:
严格来说,这个问题不是编程问题,而是系统配置问题。 【参考方案1】:这里需要清除一些基本的东西。
#!/usr/bin/perl
适用于 linux 世界(shebang)。在windows上没关系。在 linux 上,我们通过这个语句说 - 使用位于 '/usr/bin/' 位置的 'perl' 解释器来执行它。
在 windows 上,您在 windows 世界中提供了等价物,即 #!C:/Perl/bin/perl.exe
在您的情况下。
在 windows 上需要注意的一点 - 如果你在 windows PATH(Env 变量) 中有 'perl' 那么你没有必要添加 #!C:/Perl/bin/perl.exe
在您的情况下,您很可能在 Windows 7 的环境变量(系统属性 -> 环境变量 -> 系统变量)中有“perl”。因此它从那里采用“perl”路径。同样,如果您在 windows 上的脚本顶部有 #!/usr/bin/perl
,那也没关系,因为 windows 上没有这样的目录。
在 Windows 10 上,PATH 中很可能没有“perl”。 因此,Windows 中有 2 种可能的解决方案-
-
在 PATH 中添加“perl”。
或者在你的脚本中添加
#!C:/Perl/bin/perl.exe
,这是perl解释器的位置。 (不确定,为什么你说不是最好的方法。你有什么地方这么说的吗?)
对我来说,First 更好,因为它可以让我的代码跨不同的操作系统工作(并让#!/usr/bin/perl
出现在那里)。但这取决于你。
【讨论】:
【参考方案2】:我找到了!! 在我的脚本中写了 shebang #!/usr/bin/perl 如果我每次必须上传任何更新时都使用 shebang #!C:/Perl/bin/perl.exe 对于脚本,我应该更改行 问题是 .cgi 扩展名与 Perl 的关联 所以我通过在注册表中编写一个新类找到了答案 HKEY_CLASSES_ROOT.cgi\Shell\ExecCGI\Command(默认) => C:\Perl\bin\perl.exe -wT 就是这样!它完美地工作。 非常感谢您的回答,我希望这对其他人有帮助
【讨论】:
以上是关于如何在 Windows 10 中关联 cgi 扩展的主要内容,如果未能解决你的问题,请参考以下文章