0

0

Apache服务器如何使CGI执行?

(*-*)浩

(*-*)浩

发布时间:2019-11-30 11:30:38

|

6237人浏览过

|

来源于php中文网

原创

cgi(公共网关接口)定义了web服务器与外部内容生成程序交互的方式,这些程序通常被称为cgi程序或cgi脚本。这是一种使用您最熟悉的编程语言将动态内容放在网站上的简单方法。

Apache服务器如何使CGI执行?

配置Apache以允许CGI

为了使CGI程序正常工作,需要配置Apache以允许CGI执行。有几种方法可以做到这一点。

方式1:ScriptAlias指令              ( 推荐学习:Apache服务器 )

ScriptAlias指令告诉Apache,为CGI程序留出了一个特定的目录。Apache将假定此目录中的每个文件都是CGI程序,并在客户端请求该特定资源时尝试执行该程序。

ScriptAlias指令如下所示:

ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"

如果在默认位置安装了Apache,则显示的示例可在默认httpd.conf配置文件找到。

ScriptAlias指令很像Alias指令,它定义了一个映射到特定目录的URL前缀。Alias和ScriptAlias通常用于DocumentRoot目录之外的目录。

Alias和ScriptAlias之间的区别在于ScriptAlias具有额外的含义,即该URL前缀下的所有内容都将被视为CGI程序。

因此,上面的示例告诉Apache,对于以/cgi-bin/开头的资源的任何请求都应该在目录/usr/local/apache2/cgi-bin/中提供,并且应该被视为CGI程序。

例如,如果请求URL http://www.example.com/cgi-bin/test.pl,Apache将尝试执行文件/usr/local/apache2/cgi-bin/test.pl并返回输出。当然,该文件必须存在,并且是可执行的,并以特定方式返回输出,否则Apache将返回错误消息。

php中级教程之ajax技术
php中级教程之ajax技术

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速

下载

方式2:ScriptAlias目录之外的CGI

出于安全原因,CGI程序通常仅限于ScriptAlias的目录。通过这种方式,管理员可以严格控制允许谁使用CGI程序。但是,如果采取适当的安全预防措施,则没有理由不能从任意目录运行CGI程序。

例如,您可能希望使用UserDir指令让用户在其主目录中拥有Web内容。如果他们想拥有自己的CGI程序,但无法访问主cgi-bin目录,则需要能够在其他地方运行CGI程序。

允许在任意目录中执行CGI有两个步骤。首先,必须使用AddHandler或SetHandler指令激活cgi-script处理程序。其次,必须在Options指令中指定ExecCGI。

方式3:使用Options来允许CGI执行

可以在主服务器配置文件中明确使用Options指令来指定在特定目录中允许CGI执行:


    Options +ExecCGI

上述指令告诉Apache允许执行CGI文件。还需要告诉服务器哪些文件是CGI文件。以下AddHandler指令告诉服务器将所有带有cgi或pl扩展名的文件视为CGI程序:

AddHandler cgi-script .cgi .pl

方式4:用户目录

要允许在用户目录中以.cgi结尾的任何文件执行CGI程序,可以使用以下配置。


    Options +ExecCGI
    AddHandler cgi-script .cgi

如果您希望指定用户目录的cgi-bin子目录,其中所有内容都将被视为CGI程序,则可以使用以下命令。


    Options ExecCGI
    SetHandler cgi-script

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1022

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

65

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

415

2025.12.29

apache是什么意思
apache是什么意思

Apache是Apache HTTP Server的简称,是一个开源的Web服务器软件。是目前全球使用最广泛的Web服务器软件之一,由Apache软件基金会开发和维护,Apache具有稳定、安全和高性能的特点,得益于其成熟的开发和广泛的应用实践,被广泛用于托管网站、搭建Web应用程序、构建Web服务和代理等场景。本专题为大家提供了Apache相关的各种文章、以及下载和课程,希望对各位有所帮助。

406

2023.08.23

apache启动失败
apache启动失败

Apache启动失败可能有多种原因。需要检查日志文件、检查配置文件等等。想了解更多apache启动的相关内容,可以阅读本专题下面的文章。

930

2024.01.16

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

409

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

1812

2024.03.12

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

27

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
RunnerGo从入门到精通
RunnerGo从入门到精通

共22课时 | 1.7万人学习

尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.2万人学习

Linux优化视频教程
Linux优化视频教程

共14课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号