- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 fastcgi_module
在 Apache2 (Apache/2.4.6 (Ubuntu)) 中运行 cgi 脚本。这是我设置的虚拟主机
<VirtualHost *:8080>
ServerName cgi.local
DocumentRoot /home/noobeana/CGI
<Directory /home/noobeana/CGI>
AllowOverride All
Order allow,deny
Allow from all
Require all granted
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
SetHandler fastcgi-script
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这是我创建的用于运行测试的 Perl 脚本(775 版本)(/home/noobeana/CGI/test.pl
):
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello there!<br />\n";
Perl 可执行文件的路径确实是 /usr/bin/perl
并且其他一切看起来都很好,但是当我打开 http://cgi.local:8080/test.pl 时在浏览器中,脚本将永远运行——我必须停止 Apache 以强制退出。此外,print
正在输出到 Apache 的错误日志(而不是浏览器),只要脚本正在运行,它就会显示大量以下行:
[Fri Feb 07 10:24:54.059738 2014] [:warn] [pid 4708:tid 140365322880896] FastCGI: (dynamic) server "/home/noobeana/CGI/test.pl" started (pid 4771)
Content-type: text/html
Hello there!<br />
[Fri Feb 07 10:24:54.078938 2014] [:warn] [pid 4708:tid 140365322880896] FastCGI: (dynamic) server "/home/noobeana/CGI/test.pl" (pid 4771) terminated by calling exit with status '0'
[Fri Feb 07 10:24:59.663494 2014] [:warn] [pid 4708:tid 140365322880896] FastCGI: (dynamic) server "/home/noobeana/CGI/test.pl" restarted (pid 4773)
Content-type: text/html
Hello there!<br />
[Fri Feb 07 10:24:59.665855 2014] [:warn] [pid 4708:tid 140365322880896] FastCGI: (dynamic) server "/home/noobeana/CGI/test.pl" (pid 4773) terminated by calling exit with status '0'
我不确定这两个问题(print
没有在浏览器中输出和脚本没有终止)是否相关。
最佳答案
您尝试执行的操作是不可能的。 fastcgi_module
只能运行实现 FastCGI 接口(interface)的脚本,您编写的脚本不支持该接口(interface)。相反,fastcgi_module
反复尝试启动您的“FastCGI”脚本,看到它打印一些东西并立即退出——这是 FastCGI 脚本不应该做的——并且挠头想知道它做错了什么。
可以使用 CGI::Fast
模块实现实现正确接口(interface)的简单脚本:
#!/usr/bin/perl
use strict;
use CGI::Fast;
while (my $CGI = CGI::Fast->new) {
print $CGI->header();
print "Hello there\n";
}
(FastCGI 协议(protocol)有点复杂,所以不使用模块就没有合理的方法来实现它。)
关于apache - 使用 fastcgi_module 在 Apache 下永远运行的 CGI 脚本 (Perl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21632842/
我正在尝试使用 fastcgi_module 在 Apache2 (Apache/2.4.6 (Ubuntu)) 中运行 cgi 脚本。这是我设置的虚拟主机 ServerName c
我正在尝试使用 fastcgi_module 在 Apache2 (Apache/2.4.6 (Ubuntu)) 中运行 cgi 脚本。这是我设置的虚拟主机 ServerName c
我是一名优秀的程序员,十分优秀!