ScriptInterpreterSource 指令
| 描述: | 为CGI脚本定位解释器的技术 |
|---|---|
| 句法: | ScriptInterpreterSource Registry|Registry-Strict|Script |
| 默认: | ScriptInterpreterSource Script |
| 内容: | 服务器配置,虚拟主机,目录,.htaccess |
| 覆写: | 文件信息 |
| 状态: | 核心 |
| 模组: | 核心 |
| 兼容性: | 仅Win32。 |
该指令用于控制Apache httpd如何查找用于运行CGI脚本的解释器。默认设置为Script。这将导致Apache httpd使用#!脚本中shebang行(第一行,以开头)指向的解释器。在Win32系统上,此行通常如下所示:
#!C:/Perl/bin/perl.exe
或者,如果perl位于中PATH,则只需:
#!perl
设置ScriptInterpreterSource Registry将导致HKEY_CLASSES_ROOT使用脚本文件扩展名(例如.pl)作为搜索关键字来搜索Windows注册表树。由注册表子项定义的命令,Shell\ExecCGI\Command或者如果不存在,则由子项定义的命令Shell\Open\Command用于打开脚本文件。如果找不到注册表项,则Apache httpd会退回到该Script选项的行为。
安全
ScriptInterpreterSource Registry与ScriptAliased目录一起使用时要小心,因为Apache httpd会尝试执行该目录中的每个文件。该Registry设置可能导致对通常不执行的文件进行不希望的程序调用。例如,.htm大多数Windows系统上文件的默认打开命令将执行Microsoft Internet Explorer,因此.htm,对脚本目录中现有文件的任何HTTP请求都将在服务器后台启动浏览器。这是在一分钟左右的时间内使系统崩溃的好方法。
该选项的Registry-Strict作用与Registry仅使用子项的相同Shell\ExecCGI\Command。ExecCGI钥匙不是普通的钥匙。必须在Windows注册表中手动配置它,因此可以防止在系统上意外调用程序。
