Назад | Перейти на главную страницу

Как выполнить 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>

Должен ли я связать вино для выполнения этого CGI?

Веб-сервер Apache не может запустить monitorCGI.cgi script, потому что он не может найти интерпретатор для использования.

Это означает, что он не распознает monitorCGI.cgi как скомпилированный двоичный файл и поэтому обрабатывает его как сценарий, и поэтому хочет, чтобы первая строка была #! /path/to/interpreter для какого-то переводчика.

Поскольку вы утверждаете, что сценарий представляет собой скомпилированный двоичный файл, но Apache не распознает его как таковой, он, вероятно, скомпилирован для неправильной архитектуры.

Попробуйте команду file monitorCGI.cgi чтобы узнать, к какому типу файла относится ваша ОС. Возможно, он скомпилирован для 64-битной системы, если вы используете 32-битную систему, или это исполняемый файл Windows, когда вы используете сервер Linux. В любом случае вам нужно найти совместимый двоичный файл, чтобы он работал. Попробуйте запустить сценарий непосредственно из командной строки, чтобы убедиться, что он может выполняться, перед запуском через Apache.