Perl 您如何使用Apache;ScriptExpressorSource注册表严格”的;指令?
我在windows上运行ApacheWeb服务器,以便处理一些PerlCGI脚本。在生产环境中,这些脚本在linux机器上运行,在源代码存储库中,它们都有类似的提示:Perl 您如何使用Apache;ScriptExpressorSource注册表严格”的;指令?,perl,apache,cgi,Perl,Apache,Cgi,我在windows上运行ApacheWeb服务器,以便处理一些PerlCGI脚本。在生产环境中,这些脚本在linux机器上运行,在源代码存储库中,它们都有类似的提示:#/usr/bin/perl,但在我的windows机器上,shebang将是#!c:\perl\bin\perl.exe,因此我与源代码库有冲突 输入apachescriptexplorersource指令 我一直在努力使它工作,基于我能谷歌。但到目前为止运气不好。我有: 将这些内容添加到相应的指令中 允许不超过任何值 选项索引跟
#/usr/bin/perl
,但在我的windows机器上,shebang将是#!c:\perl\bin\perl.exe
,因此我与源代码库有冲突
输入apachescriptexplorersource指令
我一直在努力使它工作,基于我能谷歌。但到目前为止运气不好。我有:
选项索引跟随SYMLINKS ExecCGI 命令允许,拒绝 通融 ScriptExpressorSource注册表严格
谢谢。听起来好像ScriptExplorerSource行被忽略了。如果设置为Registry或Registry Strict,则应忽略shebang行并仅使用Registry 此外,注册表项的位置略有不同:
HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command\(Default) => C:\Perl\bin\perl.exe -wT
<>而不是在单独的CGI进程中运行Perl代码,请考虑使用<强> MODYPerl (参见)。p>
Mod_perl效率更高,因为perl代码只加载和解析一次,然后直接在Apache进程中运行,而无需启动或与其他进程通信。这也适用于Python脚本。我做了以下操作来修复我的Apache安装,以忽略脚本中的shebang需求。如果没有这一点,当前版本的Apache2.4中就需要shebang,至少在我的版本中是这样
# tell apache to use registry - this requried a registry hack
# to the following:
# [HKEY_CLASSES_ROOT\.py\Shell\ExecCGI\Command] = "c:\\python\\python.exe"
ScriptInterpreterSource Registry-Strict
用MODYPerl 2.0.4和Perl V5.10 0对Apache 2.2.11(Win32)进行了验证,这解决了我的问题,但是,我发现使用<代码> -t>代码>切换会导致旧代码出现问题(例如,它导致<代码> @ INC >代码不考虑相对路径)。谢谢,这使我发疯了。使用Win2008 Apache 2.2.22和ActivePerl 5.12.4进行工作
# tell apache to use registry - this requried a registry hack
# to the following:
# [HKEY_CLASSES_ROOT\.py\Shell\ExecCGI\Command] = "c:\\python\\python.exe"
ScriptInterpreterSource Registry-Strict