lighttpd: PHP Prozesse unter falschem Benutzername

  • Thread starter Thread starter lichtmaschine
  • Start date Start date
L

lichtmaschine

Guest
Moin,

ich steige derzeit bei einem Server von Apache2 auf lighttpd um. Als Weboberfläche ist Froxlor installiert.

Nutzt man Froxlor mit lighttpd + aktivierten FCGID, so laufen alle PHP Prozesse leider noch unter dem Webserver Benutzer.

Der Fehler ist im Froxlor Bugtracker bekannt, jedoch schon vor einem Jahr eingetragen worden. Im Forum scheint auch kein Entwickler zu reagieren (http://forum.froxlor.org/index.php?/topic/1347-lighttpd-php-prozesse-unter-richtigem-benutzername/).

Setzt einer von euch diese Umgebung bereits ein und konnte das irgendwie selbst fixen? :)
 
Nicht direkt.

Wenn du statt fcgid php-fpm verwendest, laufen die php-Prozesse unter dem jeweiligen User.
 
Ich habe jetzt mal php5-fpm per apt-get installiert, PHP-FPM in Froxlor aktiviert und die Konfigurationen schreiben gelassen.

Bei PHP Seiten wird jetzt allerdings nur noch ein 500/503er Fehler ausgeworfen.

lighttpd Error Log:

Code:
2011-11-21 14:39:23: (server.c.1512) server stopped by UID = 0 PID = 5859
2011-11-21 14:39:24: (log.c.166) server started
2011-11-21 14:45:01: (server.c.1396) [note] graceful shutdown started
2011-11-21 14:45:01: (log.c.166) server started
2011-11-21 14:45:03: (server.c.1512) server stopped by UID = 0 PID = 5918
2011-11-21 14:45:30: (mod_fastcgi.c.1734) connect failed: No such file or directory on unix:/var/run/lighttpd/froxlor.panel-sX.domain.tld-php-fpm.socket
2011-11-21 14:45:30: (mod_fastcgi.c.3027) backend died; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 1
2011-11-21 14:45:31: (mod_fastcgi.c.3597) all handlers for /froxlor/index.php? on .php are down.
2011-11-21 14:45:32: (mod_fastcgi.c.2854) fcgi-server re-enabled: unix:/var/run/lighttpd/froxlor.panel-sX.domain.tld-php-fpm.socket
2011-11-21 14:45:47: (mod_fastcgi.c.1734) connect failed: No such file or directory on unix:/var/run/lighttpd/kunde-kunde.sX.domain.tld-php-fpm.socket
2011-11-21 14:45:47: (mod_fastcgi.c.3027) backend died; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 1
2011-11-21 14:45:47: (mod_fastcgi.c.3597) all handlers for /phpinfo.php? on .php are down.
2011-11-21 14:45:49: (mod_fastcgi.c.2854) fcgi-server re-enabled: unix:/var/run/lighttpd/kunde-kunde.sX.domain.tld-php-fpm.socket

Die entsprechende Socket Datei in /var/run/lighttpd sollte Froxlor ja eigentlich anlegen oder nicht? Dies ist allerdings nicht der Fall, dazu laufen die Prozesse noch immer unter www-data. Was habe ich übersehen?
 
Last edited by a moderator:
Was steht denn in den configs in /etc/php-fpm.d/? Könnte sein, dass da noch die falschen Sockets drin stehen.
 
Code:
;PHP-FPM configuration for "kundexy.sx.domain.tld" created on 2011.11.21 14:55:01
[kundexy.sx.domain.tld]
listen = /var/run/lighttpd/kundexy.sx.domain.tld-php-fpm.socket
listen.owner = kundexy
listen.group = kundexy
listen.mode = 0666
user = kundexy
group = kundexy
pm = static
pm.max_children = 1
pm.max_requests = 0
;chroot = /var/customers/webs/kundexy/
env[TMP] = /var/customers/tmp/kundexy/
env[TMPDIR] = /var/customers/tmp/kundexy/
env[TEMP] = /var/customers/tmp/kundexy/
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f mail@mail
php_admin_value[open_basedir] = /var/customers/webs/kundexy/:/var/customers/tmp/kundexy/:/usr/share/php/:/usr/share/php5/:/tmp/
php_admin_value[session.save_path] = /var/customers/tmp/kundexy/
php_admin_value[upload_tmp_dir] = /var/customers/tmp/kundexy/

Im Ordner /var/run/lighttpd existieren leider keine Dateien.
 
Laufen denn die php-fpm-Prozesse? Falls nicht, wird /etc/php-fpm.d/ in /etc/php5/fpm/php-fpm.conf inkludiert? Und was sagt /var/log/php-fpm.log?
 
Laufen tun die PHP Prozesse, inkludiert ist das Verzeichnis jedoch nicht.


php5-fpm.log

Code:
[25-Nov-2011 17:31:38] NOTICE: Terminating ...
[25-Nov-2011 17:31:38] NOTICE: exiting, bye-bye!
[25-Nov-2011 17:31:38] NOTICE: fpm is running, pid 17803
[25-Nov-2011 17:31:38] NOTICE: ready to handle connections
 
Was hast du denn bei Pool Definitions stehen? Laufen wirklich für die einzelnen Sockets die Prozesse oder nur der Master-Prozess?
 
Die Userprozesse laufen nicht.

Code:
17803 root      20   0 24760  2808   820 S  0.0  0.3  0:00.34 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
17805 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17806 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17807 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17808 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17809 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17810 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17811 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17812 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17813 www-data  20   0 24760  2476   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17814 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17815 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17816 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17817 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17818 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17819 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17820 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17821 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17822 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17823 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
17825 www-data  20   0 24760  2480   492 S  0.0  0.2  0:00.00 php-fpm: pool www
 
Ich stehe gerade vor dem selben Problem, finde allerdings auch nichts, wie die Konfiguration aussehen muss. bjo: Könntest du mir da helfen?
 
Bei Froxlor hast du php-fpm eingeschaltet, fcgid ist abgeschaltet?

Wie sehen die Configs von lighttpd und php-fpm (/etc/php-fpm.d/) aus?
 
Installiert habe ich php5-fpm über dotdeb, anschließend PHP FPM in Froxlor aktiviert. FCGID ist Off.


Code:
var.basedir  = "/var/www"
var.logdir   = "/var/log/lighttpd"
var.statedir = "/var/lib/lighttpd"

server.modules = (
        "mod_rewrite",
        "mod_redirect",
        "mod_alias",
        "mod_access",
        "mod_auth",
        "mod_fastcgi",
        "mod_cgi",
        "mod_accesslog",
        "mod_magnet"
)
#server.max-worker = 4
server.username      = "www-data"
server.groupname     = "www-data"
server.document-root = var.basedir
server.pid-file      = "/var/run/lighttpd.pid"
accesslog.filename   = var.logdir + "/access.log"
server.errorlog      = var.logdir  + "/error.log"

server.indexfiles    = ("index.php", "index.html",
                                                "index.htm", "default.htm")

server.name                      = "HOSTNAME"
server.port          = 80
server.bind          = "IP"
url.access-deny = ("~", ".inc")

fastcgi.server = (
".php" => (
                "localhost" => (
                        "socket" => "/tmp/lighttpd-fcgi-sock-lighttpd",
                        "broken-scriptfilename" => "enable",
                        "bin-path" => "/usr/bin/php5-cgi",
                        "min-procs" => 1,
                        "max-procs" => 1,
                        "max-load-per-proc" => 4,
                        "idle-timeout" => 60,
                        "bin-environment" => (
                                "UID" => "www-data",
                                "GID" => "www-data",
                                "PHP_FCGI_CHILDREN" => "4",
                                "PHP_FCGI_MAX_REQUESTS" => "10000"
                        ),
                        "bin-copy-environment" => ( "" )
                )
        )
)

#### external configuration files
## mimetype mapping
include_shell "/usr/share/lighttpd/create-mime.assign.pl"

include_shell "cat /etc/lighttpd/conf-enabled/*.conf"


Eine Konfiguration in /etc/php-fpm.d/, was Froxlor erstellt hat:

Code:
;PHP-FPM configuration for "domain.com" created on 2011.12.14 16:55:01
[domain.com]
listen = /var/run/lighttpd/username-domain.com-php-fpm.socket
listen.owner = username
listen.group = username
listen.mode = 0666
user = username
group = username
pm = static
pm.max_children = 1
pm.max_requests = 0
;chroot = /var/customers/webs/username/unterverzeichnis/
env[TMP] = /var/customers/tmp/username/
env[TMPDIR] = /var/customers/tmp/username/
env[TEMP] = /var/customers/tmp/username/
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f mailadresse
php_admin_value[open_basedir] = /var/customers/webs/username/unterverzeichnis/:/var/customers/tmp/username/:/usr/share/php/:/usr/share/php5/:/tmp/
php_admin_value[session.save_path] = /var/customers/tmp/username/
php_admin_value[upload_tmp_dir] = /var/customers/tmp/username/

Der eingebundene Socket wurde von Froxlor nicht erstellt.
 
Hast du in der PHP FPM Konfigurationsdatei unter /etc/php5/fpm die php-fpm.conf bearbeitet? Ganz unten müsstest du das Verzeichnis anpassen:

Code:
include=/etc/php-fpm.d/*.conf


Die Sockets sollten eigentlich angelegt werden.

Edit: Die Einbindung von PHP in der lighttpd Config kann übrigens raus.
 
Last edited by a moderator:
Danke dir, die Änderung des Konfigurationsordners hat geholfen. Auch sind jetzt die Sockets vorhanden.

In Froxlor habe ich die Ausführung von Froxlor mit einem eigenen User aktiviert. Im Ordner /etc/php-fpm.d/ wird auch eine entsprechende Konfiguration erstellt, der Socket jedoch nicht.

Jemand eine Idee? Und muss ich sonst noch etwas beachten/an meiner lighttpd/PHP FPM Konfiguration anpassen?
 
Code:
[14-Dec-2011 16:39:29] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[14-Dec-2011 16:39:29] NOTICE: fpm is running, pid 28418
[14-Dec-2011 16:39:29] NOTICE: ready to handle connections
[14-Dec-2011 16:39:30] NOTICE: Reloading in progress ...
[14-Dec-2011 16:39:30] NOTICE: reloading: execvp("/usr/sbin/php5-fpm", {"/usr/sbin/php5-fpm", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"})
[14-Dec-2011 16:39:30] NOTICE: using inherited socket fd=6, "127.0.0.1:9000"
[14-Dec-2011 16:39:30] NOTICE: using inherited socket fd=6, "127.0.0.1:9000"
[14-Dec-2011 16:39:30] NOTICE: fpm is running, pid 28521
[14-Dec-2011 16:39:30] NOTICE: ready to handle connections
[14-Dec-2011 17:00:54] NOTICE: Terminating ...
[14-Dec-2011 17:00:54] NOTICE: exiting, bye-bye!
[14-Dec-2011 17:00:54] NOTICE: fpm is running, pid 32037
[14-Dec-2011 17:00:54] NOTICE: ready to handle connections
[14-Dec-2011 17:01:54] NOTICE: Terminating ...
[14-Dec-2011 17:01:54] NOTICE: exiting, bye-bye!
[14-Dec-2011 17:01:54] NOTICE: fpm is running, pid 32159
[14-Dec-2011 17:01:54] NOTICE: ready to handle connections
[14-Dec-2011 17:25:02] NOTICE: Terminating ...
[14-Dec-2011 17:25:02] NOTICE: exiting, bye-bye!
[14-Dec-2011 17:25:02] NOTICE: fpm is running, pid 3515
[14-Dec-2011 17:25:02] NOTICE: ready to handle connections

Nichts, was zum fehlenden Socket hinweist?
 
Back
Top