热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Linux上的Apache中设置默认脚本解释器-SettingupthedefaultscriptinterpreterinApacheonLinux

OnWindows,thefollowingregistrysettingconfiguresthescriptinterpretertobeusedbyApache:在

On Windows, the following registry setting configures the script interpreter to be used by Apache:

在Windows上,以下注册表设置配置Apache使用的脚本解释器:

HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command=C:\Perl\bin\perl.exe

How is this done on Linux?

这是如何在Linux上完成的?

4 个解决方案

#1


To add a bit more information to @Mohit's good answer:

要向@ Mohit的好答案添加更多信息:

Unix uses many interpreters for many languages. Some of them are called "shells", but most are just another computer language to the system. In fact, every file is written in some language, even if it's compiled assembly of Java bytecodes.

Unix为许多语言使用了许多解释器。其中一些被称为“shell”,但大多数只是系统的另一种计算机语言。实际上,每个文件都是用某种语言编写的,即使它是Java字节码的编译汇编。

The first few bytes of a file are "magic": they tell the OS how to execute the file. If the first two bytes are '#!', the OS knows that the file needs an interpreter. The rest of the first line up to newline is then used as a command to execute. The first "word" (space-separated group of non-spaces) of the line is interpreted as absolute file name to run, and all the other words are passed to it as command line arguments. Last parameter is the file name of the file you're running.

文件的前几个字节是“神奇的”:它们告诉操作系统如何执行文件。如果前两个字节是'#!',则OS知道该文件需要解释器。然后将第一行到换行符的其余部分用作执行命令。该行的第一个“单词”(以空格分隔的非空格组)被解释为要运行的绝对文件名,所有其他单词作为命令行参数传递给它。最后一个参数是您正在运行的文件的文件名。

So, for example, if you have the first line as

所以,例如,如果你有第一行

#!/bin/tclsh

in a file /home/user/aaa.tcl

在文件/home/user/aaa.tcl中

the OS will execute /bin/tclsh with /home/user/aaa.tcl as command line argument:

操作系统将使用/home/user/aaa.tcl作为命令行参数执行/ bin / tclsh:

/bin/tclsh /home/user/aaa.tcl

For a more advanced example, try this:

有关更高级的示例,请尝试以下操作:

#! /bin/env perl

in /home/user/myperlscript

This executes the following command:

这将执行以下命令:

/bin/env perl /home/user/myperlscript

/bin/env is a utility program that looks up its first argument using PATH environment variable, and then executes the program it finds, passing the rest of its arguments on to the program. With the help of env, you can use PATH to find your interpreters.

/ bin / env是一个实用程序,它使用PATH环境变量查找其第一个参数,然后执行它找到的程序,将其余的参数传递给程序。在env的帮助下,您可以使用PATH找到您的口译员。

#2


If you are talking about CGI script handlers.

如果您正在谈论CGI脚本处理程序。

It is set on the first line of each CGI script, I frequently use TCL as my script handler in Apache and hence add:

它设置在每个CGI脚本的第一行,我经常使用TCL作为Apache中的脚本处理程序,因此添加:

#!/bin/tclsh

Add this line on top of your script, eg. test.cgi and it will be executed by TCL shell whenever it is requested by someone.

在脚本之上添加此行,例如。 test.cgi,只要有人要求,它就会被TCL shell执行。

Similary you can set it as

相似你可以设置为

for BASH -- #!/bin/sh

对于BASH - #!/ bin / sh

or

for PERL -- #!/usr/bin/perl

对于PERL - #!/ usr / bin / perl

Note: The path for the shell binary executable can be different, from above, on your machine. Use the following command to find it:

注意:shell二进制可执行文件的路径可能与您的计算机上面的路径不同。使用以下命令查找它:

#which perl

Also, as Max has suggested, do check if Apache is configured to allow CGI scripts Find detailed description of the same here at this Apache Tutorial Link

另外,正如Max建议的那样,检查Apache是​​否配置为允许CGI脚本在此Apache Tutorial链接中查找相同的详细描述

#3


ScriptInterpreterSource is an Apache configuration setting and is only supported on Windows. I'm not really experienced at configuring Apache on Linux but I reckon you should check out the Script directive.

ScriptInterpreterSource是Apache配置设置,仅在Windows上受支持。我在Linux上配置Apache并不是很有经验,但我认为你应该查看Script指令。

#4


There is no registry under Linux. Also, I doubt you will get Perl.exe running under Linux.

Linux下没有注册表。另外,我怀疑你会在Linux下运行Perl.exe。


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • ***byte(字节)根据长度转成kb(千字节)和mb(兆字节)**parambytes*return*publicstaticStringbytes2kb(longbytes){ ... [详细]
author-avatar
木头人2幸福
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有