
Ich habe auf viele Arten versucht, php5-fpm in Debian Squeeze zu installieren, aber es hat nicht geklappt. Ich habe mich gefragt, ob ich php5.3.3 auf eine höhere Version aktualisieren muss, weil es auf einer niedrigeren Version als php5.4 nicht zu funktionieren scheint.
Ich habe keine Ahnung, ob Php5-fpm auf der Debian Squeeze-Basis von PHP5.3 installiert werden kann oder nicht??
Ich habe dazu diese Befehlszeile verwendet, aber es wurde ein Fehler zurückgegeben:
apt-get install php5-fpm
jede Hilfe ist willkommen!
Antwort1
PHP5-FPM ist unter Debian als Paket von Wheezy verfügbar:Debian-Paketliste. Es sind auch keine Backports verfügbar, Sie müssen also auf Wheezy aktualisieren, wenn Sie den Paketmanager weiterhin verwenden möchten.
Es handelt sich um eine Unterstützung ab PHP 5.3.3, daher ist dieser Teil in Ordnung, hilft Ihnen aber im Moment nicht weiter.
Alternativer Weg hinzugefügt: Um PHP-CGI zu verwenden, können Sie Folgendes tun:
apt-get install php5-cgi
Erstellen Sie eine Init-Datei und richten Sie sie so ein, dass sie beim Systemstart gestartet wird. Das folgende Beispiel startet 10 Worker und hört zu
#!/bin/bash
### BEGIN INIT INFO
# Provides: php-fcgi
# Required-Start: $nginx
# Required-Stop: $nginx
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php over fcgi
# Description: starts php over fcgi
### END INIT INFO
(( EUID )) && echo .You need to have root priviliges.. && exit 1
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=10
PHP_FCGI_MAX_REQUESTS=10000
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
Fügen Sie dies in NGINX im Konfigurationsteil für Ihren PHP-Teil hinzu, um alle Anfragen an den lokalen Host auf Port 9000 umzuleiten.
location ~ \.php$ {
# Filter out arbitrary code execution
location ~ \..*/.*\.php$ {return 404;}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
Ich habe eine Datei in „/etc/nginx/fastcgi_params“ mit allen anderen FastCGI-Parametern. Dies ist der Inhalt, aber er kann frei geändert werden.
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_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 HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
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;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;