Lighttpd 设置 CGI-BIG CGI 用于 Perl 程序
首先,您需要创建一个 cgi-bin 目录。我的示例设置如下,用于 Lighttpd 设置 CGI-BIG 目录和配置:
设置 | 描述 |
---|---|
领域 | theos.in |
主机 .pl 文件的 CGI-BIN 目录路径 | /home/lighttpd/theos.in/cgi-bin |
操作系统 | Linux |
Web 服务器 | Lighttpd |
步骤#1:创建CGI cgi-bin 目录
首先,您需要为您的域名创建一个 cgi-bin 目录。假设您的域名托管在 /home/lighttpd/theos.in/http (DocumentRoot),使用mkdir 命令创建 cgi-bin,如下所示:
# mkdir -p /home/lighttpd/theos.in/cgi-bin
使用 chmod 命令和 chown 命令设置正确的权限,如下所示:
# chown username:groupname /home/lighttpd/theos.in/cgi-bin
# chmod 0755 username:groupname /home/lighttpd/theos.in/cgi-bin
步骤2:加载mod_cgi模块
使用文本编辑器(例如 vi/nano)打开 lighttpd 配置文件。例如,下面是使用 vim 命令的方法:
# vim /etc/lighttpd/ligttpd.conf
现在按如下方式添加或修改文本,以便加载对 mod_cgi 的支持:
server.modules += ( "mod_cgi" )
找出您的虚拟服务器配置并附加以下内容:
$HTTP["url"] =~ "/cgi-bin/" { cgi.assign = ( ".pl" => "/usr/bin/perl" ) }
以下是我的完整配置代码:
$HTTP["host"] =~ "theos.in" { server.document-root = "/home/lighttpd/theos.in/http" accesslog.filename = "/var/log/lighttpd/theos.in/access.log" $HTTP["url"] =~ "/cgi-bin/" { cgi.assign = ( ".pl" => "/usr/bin/perl" ) } ############################ # Uncomment needed config # ############################ # Set log file too if needed # server.breakagelog = "/var/log/lighttpd/cgibreakage.log" # Set of limits to apply to CGI (default is none) # 1. "write-timeout" - number of seconds before aborting when trying to write to backend (default: 0; no timeout) (since v1.4.60) # 2. "read-timeout" - number of seconds before aborting when trying to read from backend (default: 0; no timeout) (since v1.4.60) # 3. "tcp-fin-propagate" - send specified signal to CGI if TCP FIN is received from client (default: none) (since v1.4.60) # cgi.limits = ("write-timeout" => 15, "read-timeout" => 15, "tcp-fin-propagate" => "SIGTERM") }
步骤#3:重新启动Lighttpd
重新启动 lighttpd 网络服务器,输入:# /etc/init.d/lighttpd restart
或者当使用 systemd 作为 init 时:
# systemctl restart lighttpd
步骤#4:测试
在 /home/lighttpd/theos.in/cgi-bin/sample.pl 中创建一个文件/perl 程序:
#!/usr/bin/perl print "Content-Type: text/plain", "\n\n"; print "Hi there! This is a sample perl program!!!", "\n";
设置权限:
# chmod a+x /home/lighttpd/theos.in/cgi-bin/sample.pl
保存并执行程序(https://yourdomain-com/cgi-bin/sample.pl)。运行 cgi-bin 仍然有问题?出现 HTTP/500 错误。阅读以下教程:
=>我的 cgi-bin 目录中的脚本不起作用,如何解决此问题?
总结
这就是我们如何配置 Lighttpd 网络服务器以运行 cgi-bin 应用程序和脚本,使其在 Linux 和 Unix 下运行。人们可以用 Perl 和其他编程语言编写 CGI 应用程序。有关更多信息,请参阅此处的 Lighttpd 网络服务器文档。
- 我如何找到我的 cgi-bin 的 URL?
- Apache 为每个用户提供自己的 cgi-bin 目录
- Lighttpd 设置 CGI-BIG CGI 用于 Perl 程序
- Linux Apache 设置 Perl CGI 脚本限制
- 如何在 Ubuntu 22.04 / 20.04 上为 Nginx 安装 fcgiwrap
- FreeBSD 使用 mod_fastcgi 模块配置 Apache PHP
- 我的 cgi-bin 目录中的脚本不起作用,我该如何解决这个问题?
- 禁止 - 您无权访问此页面错误及解决方案
- 运行 Perl 脚本时出现 HTTP 500 错误
- Red Hat / CentOS Apache 2 FastCGI PHP 配置
- FreeBSD:安装 bindgraph 以制作有关发送到 BIND 的查询的图表