Nagios+NGiNX "기본 스크립트를 알 수 없음" 오류

Nagios+NGiNX "기본 스크립트를 알 수 없음" 오류

PHP-FPM을 사용하여 NGiNX에서 Nagios를 설정하려고 합니다.

설치했고 폴더 fcgiwrap에서 Perl 스크립트를 실행할 수 있지만 cgi-binNagios에 액세스하려고 하면 NGiNX 오류 로그에 다음 오류가 표시됩니다.

2012/08/23 16:40:21 [error] 8319#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 10.1.1.1, server: my.server.tld, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "my.server.tld"

기본 위치를 사용해도 동일한 오류가 발생하므로 원래 설치 파일을 그대로 유지하기 위해 모든 것을 다른 폴더에 복사했습니다.

cp -R /usr/lib/cgi-bin/nagios3 /var/www/cgi-bin

cp -R /usr/share/nagios3/htdocs /var/www/html

이것이 내가 설정한 것입니다./etc/nginx/sites-available/default

server {

        listen   80;

        server_name  my.domain.tld;

        access_log  /var/log/nginx/my.domain.tld.access.log;
        error_log   /var/log/nginx/my.domain.tld.error.log;

        index index.php index.html index.htm;

        location / {
                root /var/www/html/;
                auth_basic "Restricted";
                auth_basic_user_file /etc/nagios3/.htpasswd-users;
        }

        # Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                fastcgi_pass   localhost:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_intercept_errors on;
        }

        # FastCGI Wrapper
        location /cgi-bin/ {
                gzip off;
                root  /var/www/;
                fastcgi_pass  unix:/var/run/fcgiwrap.socket;
                include /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }

}

이것이 내가 내 설정에 설정한 것입니다./etc/nagios3/cgi.cfg

physical_html_path=/var/www/html
url_html_path=/

이것이 내가 실행하고 있는 것입니다. PHP는 현명합니다:

PHP 5.3.16-1~dotdeb.0 with Suhosin-Patch (cli) (built: Aug 17 2012 22:03:18)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd.
    with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH

이 문제의 원인 및/또는 해결 방법에 대한 아이디어가 있습니까?

답변1

명확히 하기 위해ErikA의 답변:

그것은 말하고있다"기본 스크립트를 알 수 없음"왜냐하면엔지엔엑스하다~ 아니다달리기를 지원하다CGI곧장. 도우미 프로그램~ 해야 하다처리하기 위해 설치됩니다.CGI파일을 저장하고 출력을 다음으로 반환합니다.엔지엔엑스.

이것이 내가 설치한 이유입니다 fcgiwrap.CGI파일을 저장하고 출력을 다음으로 전달합니다.PHP-FPM, 그런 다음 다음에 의해 처리됩니다.엔지엔엑스,AFAIUI.

init.d의 대본을 시작했다고 생각했지만 fcgiwrap그렇지 않았습니다.

netstat -alnp | grep cgi스크립트를 시작할 때까지 아무 출력도 반환하지 않은 를 실행하여 이를 확인할 수 있었습니다 ./etc/init.d/fcgiwrap start

시작한 후 netstat -alnp | grep cgi다시 실행하여 다음과 같은 결과를 얻었습니다.

unix  2      [ ACC ]     STREAM     LISTENING     18955    11251/fcgiwrap      /var/run/fcgiwrap.socket

스크립트가 실행되고 나면CGI작업 중이었는데 더 이상 이 오류가 발생하지 않았습니다.나기오스일했다.

흐릿한 사고와 어리석은 작은 실수로 인해 발생하는 편두통이군요!

답변2

최신 버전에서 뭔가 급격한 변화가 있지 않는 한 Nagios는 PHP 애플리케이션이 아닙니다.

관련 정보