Ich versuche, Nagios mit PHP-FPM auf NGiNX einzurichten.
Ich habe es installiert fcgiwrap
und kann ein Perl-Skript aus dem cgi-bin
Ordner ausführen, aber wenn ich versuche, auf Nagios zuzugreifen, erhalte ich den folgenden Fehler im NGiNX-Fehlerprotokoll:
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"
Bei Verwendung der Standardspeicherorte ist mir derselbe Fehler aufgetreten, daher habe ich alles in andere Ordner kopiert, um die ursprünglichen Installationsdateien intakt zu halten.
cp -R /usr/lib/cgi-bin/nagios3 /var/www/cgi-bin
cp -R /usr/share/nagios3/htdocs /var/www/html
Das habe ich eingestellt/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;
}
}
Das habe ich in meinem/etc/nagios3/cgi.cfg
physical_html_path=/var/www/html
url_html_path=/
In Bezug auf PHP verwende ich Folgendes:
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
Irgendwelche Ideen, was dies verursachen könnte und/oder wie man es beheben kann?
Antwort1
Um klarzustellenErikAs Antwort:
Es heißt„Primäre Schrift unbekannt“WeilNGiNXtutnichtUnterstützung beim LaufenCGIdirekt. Ein Hilfsprogrammmussinstalliert werden, um dieCGIDateien und geben Sie die Ausgabe zurück anNGiNX.
Aus diesem Grund habe ich installiert fcgiwrap
, das dieCGIDateien und übergibt die Ausgabe anPHP-FPM, die dann verarbeitet wird durchNGiNX,Soweit ich weiß.
Obwohl ich dachte, ich hätte mit dem init.d
Skript für begonnen fcgiwrap
, war dies nicht der Fall.
Ich konnte dies feststellen, indem ich ausführte netstat -alnp | grep cgi
, was keine Ausgabe zurückgab, bis ich das Skript startete./etc/init.d/fcgiwrap start
Nachdem ich es gestartet hatte, führte ich es netstat -alnp | grep cgi
erneut aus und erhielt die folgende Ausgabe:
unix 2 [ ACC ] STREAM LISTENING 18955 11251/fcgiwrap /var/run/fcgiwrap.socket
Sobald das Skript ausgeführt wurde undCGIfunktionierte, erhielt ich diesen Fehler nicht mehr undNagioshat funktioniert.
Ein Hoch auf Migräne, die auf getrübtes Denken und kleine dumme Fehler zurückzuführen ist!
Antwort2
Sofern sich in den letzten Versionen nichts drastisch geändert hat, ist Nagios keine PHP-Anwendung.