配置CGI,让 Web服务器能够执行外部程序.note
一、配置 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>
EOF43、客户端访问:

二、配置 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目录:
将脚本文件存放在默认的 /usr/lib/cgi-bin/ 目录下即可
1、编辑 cgi 配置文件:
vim /etc/apache2/conf-enabled/serve-cgi-bin.conf
# 更改 ScripAlias 即可(Alias是别名,将 /usr/lib/cgi-bin/ 目录映射成其它名称)