配置CGI,让 Web服务器能够执行外部程序.note

noteId: WEB1d89af2329a86867e0d4465eed4aa3fd · 原始路径:/ALL/Linux - A模块/服务配置/Apache2/配置合集/配置CGI,让 Web服务器能够执行外部程序.note · 图片:7 · 附件待处理:0

 
一、配置 CGI(使用默认路径访问:/cgi-bin)
需要使用默认路径访问,例如:https://www.cisco.com/cgi-bin/time.sh
1、启用 CGI:
a2enmod cgi cgid
systemctl restart apche2
# 这样 apache2就能够执行外部程序了,例如脚本(客户端通过网页访问:/cgi-bin/{脚本名称})
## 需要将可执行脚本移动到 /usr/lib/cgi-bin/ 目录下 apache才能够读取到
 
不用额外配置 cgi是因为它 已经被默认配置在了 /etc/apache2/conf-enable/server-cgi-bin.conf 中了,而apache2.conf 中会默认引入其文件
 
2、配置脚本:
如果要自定义脚本,需要以 echo "Content-type: text/html" 开头
 
 
vim /usr/lib/cgi-bin/time.sh    //在 /usr/lib/cgi-bin/ 下编辑脚本
chmod +x time.sh    //给予脚本可执行权限(如果不行就 chmod -R 777 /usr/lib/cgi.bin)
复制:
#! /bin/bash

 
echo "Content-type: text/html"

echo ""

 
/bin/cat <<EOF3

<html>

<head><title>System time</title></head>

<body>

<h2 align="center">The time of this system is :

EOF3

 
/bin/date "+%F %X"

 
/bin/cat <<EOF4

</h2>

</body>

</html>

EOF4
 
3、客户端访问:
 
 
 
二、配置 CGI,将脚本文件放在网页根目录:
将脚本文件放置在网页根目录,使其无需加 /cgi-bin ,直接就能访问,例如:https://www.cisco.com/time.sh
 
 
1、查看 cgi 配置文件,将其复制:
vim /etc/apache2/conf-enabled/serve-cgi-bin.conf
# 将 Directory 复制
 
 
将 ScriptAlias 注释:
 
 
2、复制到 虚拟主机下即可:
vim /etc/apache2/sites-available/www.abc.com.conf
 
 
 
 
 
 
 
 
三、配置CGI,自定义CGI目录:
可以自定义目录路径,例如:https://www.cisco.com/text/time.sh
将脚本文件存放在默认的 /usr/lib/cgi-bin/ 目录下即可
 
 
1、编辑 cgi 配置文件:
vim /etc/apache2/conf-enabled/serve-cgi-bin.conf
# 更改 ScripAlias 即可(Alias是别名,将 /usr/lib/cgi-bin/ 目录映射成其它名称)