【问题标题】:How to asociate cgi extension in windows 10如何在 Windows 10 中关联 cgi 扩展
【发布时间】: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

【问题讨论】:

  • 严格来说,这个问题不是编程问题,而是系统配置问题。

标签: windows perl cgi


【解决方案1】:

这里需要清除一些基本的东西。

  1. #!/usr/bin/perl 适用于 linux 世界(shebang)。在windows上没关系。在 linux 上,我们通过这个语句说 - 使用位于 '/usr/bin/' 位置的 'perl' 解释器来执行它。
  2. 在 windows 上,您在 windows 世界中提供了等价物,即 #!C:/Perl/bin/perl.exe 在您的情况下。
  3. 在 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 种可能的解决方案-

  1. 在 PATH 中添加“perl”。
  2. 或者在你的脚本中添加#!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 就是这样!它完美地工作。 非常感谢您的回答,我希望这对其他人有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 2016-07-14
      • 2021-12-22
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多