gpt4 book ai didi

windows - 我如何使用 Apache 2 忽略 Windows 上的 Perl shebang?

转载 作者:可可西里 更新时间:2023-11-01 12:37:09 25 4
gpt4 key购买 nike

我已经在我的 Windows 机器上设置了一个本地 Perl 网络环境。我正在处理的应用程序最初来自 Linux 服务器,因此源 .pl 文件的 shebang 如下所示:

#!/usr/bin/perl

这会导致我的 Windows 开发机器出现以下错误:

(OS 2)The system cannot find the file specified.

是否可以更改我的 Apache 2 conf,以便在我的 Windows 机器上忽略 shebang?当然,我可以将 shebang 设置为 #!c:\perl\bin\perl.exe,这很明显;但问题在于部署更新的文件。显然,在每次部署时都将其改回是非常不方便的。我正在使用 ActivePerl在 Windows 7 上。

更新:

我应该提到我需要保留 shebang,这样脚本才能在我们的共享托管 Linux 生产服务器上运行。如果我没有这个约束并且我不必使用 shebang,那么显而易见的答案就是不使用它。

最佳答案

我在脚本中使用 #!/usr/bin/perl 并在 Windows 上配置 Apache 以忽略 shebang 行。添加

 ScriptInterpreterSource Registry-Strict

到您的 httpd.conf 并按照 Apache docs 中的说明设置 Windows 注册表项.

这是我导出 key 时得到的结果:

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command]@="c:\\opt\\perl\\bin\\perl.exe"

我一直在我的 Windows 笔记本电脑上使用此设置与 Apache 和 ActiveState Perl,并在我的服务器上使用 ArchLinux 附带的 Apache 和 Perl 发行版。

Apache 文档(我在上面链接到的)状态:

The option Registry-Strict which is new in Apache 2.0 does the same thing as Registry but uses only the subkey Shell\ExecCGI\Command. The ExecCGI key is not a common one. It must be configured manually in the windows registry and hence prevents accidental program calls on your system. (emphasis mine)

关于windows - 我如何使用 Apache 2 忽略 Windows 上的 Perl shebang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com