如何在 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 扩展的主要内容,如果未能解决你的问题,请参考以下文章

计算R中关联规则的信念值?

如何在 laravel 中关联三个模型?

如何在 ActiveRecord 中关联两个加入模型?

如何在 Python 中关联两个音频事件(检测它们是不是相似)

如何覆盖 Grails GORM 中关系的级联删除?

如何仅使用客户 ID 在 Google Adwords API 中关联帐户?