如何在我的服务器上执行 CGI?

如何在我的服务器上执行 CGI?

我想在我的服务器上执行 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 运行之前,请尝试直接从命令行运行脚本,以验证它是否可以执行。

相关内容