Nagios+NGiNX「プライマリ スクリプトが不明です」エラー

Nagios+NGiNX「プライマリ スクリプトが不明です」エラー

PHP-FPM を使用して NGiNX 上で Nagios をセットアップしようとしています。

をインストールしfcgiwrap、フォルダーから Perl スクリプトを実行できるようになりましたcgi-binが、Nagios にアクセスしようとすると、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の回答:

それは言っている「主なスクリプトは不明」なぜならNGiNXするない実行をサポートCG直接。ヘルパープログラムしなければならないインストールして処理するCGファイルを出力し、NGiNX

これが私がインストールした理由ですfcgiwrapCGファイルに出力し、PHP-FPM、その後処理されますNGiNX私の知る限り

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

スクリプトが実行されると、CG動作していたので、このエラーは表示されなくなり、ナギオス働いた。

思考の混乱とちょっとした愚かなミスが原因の偏頭痛、最高ですね!

答え2

最近のバージョンで何か劇的な変更がない限り、Nagios は PHP アプリケーションではありません。

関連情報