nginx mit php unter Ubuntu Server

K

KaffeeJunge

Gast
Hi Leute,

ich wollte meine nginx Installation um die php Fähigkeit erweitern.
Dazu habe ich die Pakete php5-cgi und spawn-fcgi installiert und mit folgendem Skript zum laufen gebracht:
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000

PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0

start() {
echo -n "Starting PHP FastCGI: "
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
RETVAL=$?
echo "$PHP_CGI_NAME."
}
stop() {
echo -n "Stopping PHP FastCGI: "
killall -q -w -u $USER $PHP_CGI
RETVAL=$?
echo "$PHP_CGI_NAME."
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL

die nginx.conf habe ich um
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
erweitert und eine fastcgi.conf unter /etc/nginx angelegt
#fastcgi.conf
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

nginx habe ich dann natürlich noch neu gestartet, aber eine

<!DOCTYPE HTML>
<html>
<head>
<title>php-info</title>
</head>
<body>
<?php
phpinfo();
?>
</body>
</html>

zeigt nur eine leere Seite :/
 
Verwende mal nicht php5-cgi, sondern setz direkt auf PHP-FPM, den Fast Process Manager. Da brauchst du dann auch keine Spawn-Scripte und sonstwas, sondern leitest einfach PHP-Dateien einfach per Proxy-Direktive an den FPM durch.

Außerdem solltest du bei ner phpinfo() - Seite mal das Gerüst rundrum weg lassen, das funzt auch wunderbar mit einem "nackten" Dokument und entfernt ne potentielle Fehlerquelle.
 
Ich hab nun php5-cgi installiert und php5-cgi und spawn-fcgi wieder entfernt.
Meine phpinfo() steht jetzt auch nur noch in der Kurzfassung da
<?php
phpinfo();
?>
jetzt erfreue ich mich einer tollen 502 Bad Gateway Meldung :D
Ich versuch mal diesen loszuwerden^^ bis dahin freu ich mich auch auf Lösungsvorschläge ;)
Ergänzung ()

Kleines Update: Den Bad Gateway Fehler konnte ich durch die Zeile
fastcgi_pass unix:/tmp/php5-fpm.sock;
beheben, vorher hatte ich die direkte IP angegeben.
Nun erscheint mir eine weise Seite ohne Inhalt und auch wenn ich mir den Seitenquelltext anzeigen lasse, ist dieser nicht vorhanden. Bei der php5-cgi Lösung konnte ich diesen zumindest einsehen, auch wenn der Code nicht ausgeführt worden ist :D
Ich nehme mal an dass die php Weiterleitung an php-fpm soweit funktioniert nur dass dieser aus einer mir noch unbekanntem Grund den Code nicht ausführt :( Hätte jemand vielleicht einen Lösungsansatz?
 

Ähnliche Themen

Zurück
Oben