我想在我的服务器上执行 CGI,但遇到了这个问题:
run-detectors: unable to find an interpreter for /media/FTP/outils/cgi-bin/monitorCGI.cgi, >refererer: http://outils.mynd/backburner.
Premature end of scripts header: monitorCGI.cgi, referer: >http://outils.mynd/backburner.
我的apache2.conf
样子是这样的:
<location /media/FTP/racine/cgi-bin/>
Options +ExecCGI
AddHandler cgi-script .cgi
</Location>
我的 Vhost 如下所示:
>VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName SERV-FTP
DocumentRoot /media/FTP
Directory /media/FTP/racine/cgi-bin>
Options +Indexes FollowSymLinks MultiViews +ExecCGI
AddHandler cgi-script cgi
Order allow,deny
allow from all
/Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我应该链接 wine 来执行这个 CGI 吗?
答案1
Apache 网络服务器无法运行该monitorCGI.cgi
脚本,因为它无法找到要使用的解释器。
这意味着它不能将其识别monitorCGI.cgi
为已编译的二进制文件,因此将其视为脚本,因此希望第一行用于#! /path/to/interpreter
某些解释器。
由于您声称该脚本是已编译的二进制文件,但 Apache 无法识别它,因此它很可能是针对错误的体系结构进行编译的。
尝试该命令file monitorCGI.cgi
以查看您的操作系统声称它是什么类型的文件。当您运行 32 位系统时,它可能被编译为 64 位,或者当您运行 Linux 服务器时,它是 Windows 可执行文件。无论如何,您需要找到兼容的二进制文件才能使其工作。在通过 Apache 运行之前,请尝试直接从命令行运行脚本,以验证它是否可以执行。