Page 1 of 1

lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-18 17:12
by synex
Ich habe heute mal Lighttpd eingerichtet und wollte wie bei Apache FastCGI nutzen.

Nun habe ich alles eingerichtet und wollte mal testen. Es kam der Fehler 500 als ich die Seite aufrufen wollte. Also ein Fehler im System. Also mal in den log geschaut:

Code: Select all

2007-08-18 16:36:52: (mod_fastcgi.c.1712) connect failed: Permission denied on unix:/etc/lighttpd/fastcgi/synex/synex.socket
2007-08-18 16:36:52: (mod_fastcgi.c.2866) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 1
Ok, anscheinend kann er auf das Socket nicht zugreifen. Mal eben Permissions angeguckt:

Code: Select all

root@blubb:/etc/lighttpd# ls /etc/lighttpd/fastcgi/synex/synex.socket
srwxrwx--- 1 synex www-data 0 2007-08-18 16:47 /etc/lighttpd/fastcgi/synex/synex.socket
Mal kurz überlegen:

Ich lasse Lighttpd über den User/die Group www-data laufen. Somit müsste er wirklich nicht zugreifen drüfen. Habe dann mal bei dem Starter Script anstatt Group "synex" die Group "www-data" genommen. Doch kam kein Erfolg.

Vielleicht könnt ihr mir mal helfen. Bin nach der Anleitung gegangen: http://trac.lighttpd.net/trac/wiki/HowT ... ermissions

Nun noch ein paar Infos:

Auszug aus der Lighttpd Config:

Code: Select all

$HTTP["host"] =~ "(^|.)synex-us.de$" {
    server.document-root = "/home/synex/html"
    accesslog.filename = "/etc/lighttpd/logs/synex/access.log"
    fastcgi.server = ( ".php" =>
                       (
                         ( "socket" => "/etc/lighttpd/fastcgi/synex/synex.socket",
                           "broken-scriptfilename" => "enable"
                         )
                       )
                     )
}
Starter (ja das Script wurde ohne Fehler ausgeführt und die php-cgi Prozesse laufen auch):

Code: Select all

#!/bin/sh

## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/etc/lighttpd/bin/spawn-fcgi"

## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/root/lamp/php/php5/bin/php-cgi"

## bind to tcp-port on localhost
FCGISOCKET="/etc/lighttpd/fastcgi/synex/synex.socket"

## uncomment the PHPRC line, if you want to have an extra php.ini for this user
## store your custom php.ini in /var/www/fastcgi/fred/php.ini
## with an custom php.ini you can improve your security
## just set the open_basedir to the users webfolder
## Example: (add this line in you custom php.ini)
## open_basedir = /var/www/vhosts/fred/html
##
#PHPRC="/etc/lighttpd/fastcgi/synex/"

## number of PHP childs to spawn in addition to the default. Minimum of 2.
## Actual childs = PHP_FCGI_CHILDREN + 1
PHP_FCGI_CHILDREN=2

## number of request server by a single php-process until is will be restarted
PHP_FCGI_MAX_REQUESTS=1000

## IP adresses where PHP should access server connections from
FCGI_WEB_SERVER_ADDRS="127.0.0.1"

# allowed environment variables sperated by spaces
ALLOWED_ENV="PATH USER"

## if this script is run as root switch to the following user
USERID=synex
GROUPID=synex

################## no config below this line

if test x$PHP_FCGI_CHILDREN = x; then
  PHP_FCGI_CHILDREN=5
fi

export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS
export PHPRC

ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS PHPRC"

# copy the allowed environment variables
E=

for i in $ALLOWED_ENV; do
  E="$E $i=$(eval echo "$$i")"
done

# clean environment and set up a new one
env - $E $SPAWNFCGI -s $FCGISOCKET -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN

chmod 770 $FCGISOCKET
Wenn ihr noch etwas braucht, müsst ihr sagen oder mir gleich helfen :roll:

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-18 18:44
by Joe User

Code: Select all

FCGIPROGRAM="/root/lamp/php/php5/bin/php-cgi"

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-18 18:57
by synex
da ich nicht genau weiß was du meintest, habe ich mal bisle getestet.. hab mal die vorher gestarteten php-cgi prozesse gekillt und die datei mit der endung ".socket" gelöscht. dafür habe ich bei dem vhost dies hinzugefügt:

Code: Select all

"bin-path" => "/root/lamp/php/php5/bin/php-cgi"
(dem ordner wo das socketfile hin soll, habe ich nur zum testen chmod 777 gegeben)

das klappt natürlich..


nun ist das aber kein richtiger fortschritt, da der sinn von dem spawnen nicht erfüllt wurde. außerdem läuft php nicht unter dem user des vhosts.

könnt ihr mir vlt irgendwie helfen? will das halt so ähnlich wie bei http://www.rootforum.org/forum/viewtopic.php?t=28561 hinbekommen, nur halt unter lighty

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-18 19:31
by Joe User
SyneX wrote:da ich nicht genau weiß was du meintest,
Dein User darf aus gutem Grund nicht auf FCGIPROGRAM (/root) zugreifen.

Code: Select all

mv /root/lamp /opt

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-18 20:24
by synex
dies brachte nix, immer noch das selbe problem :(

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-19 11:53
by Roger Wilco
Poste mal die Ausgabe von `/usr/sbin/lighttpd -p -f /etc/lighttpd/lighttpd.conf` (Pfad zur Konfiguration ggf. anpassen). Hat der lighttpd die nötigen Rechte, um auf alle Verzeichnisse über /etc/lighttpd/fastcgi/synex/synex.socket zuzugreifen?

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-19 12:03
by synex
oh ist das peinlich. hab mal im starterscript anstatt chmod 770 mal chmod 777 gemacht und nun klappts

ich danke dir.. war wohl gestern ein wenig geblendet

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-19 14:15
by sledge0303
SyneX wrote:oh ist das peinlich. hab mal im starterscript anstatt chmod 770 mal chmod 777 gemacht und nun klappts

ich danke dir.. war wohl gestern ein wenig geblendet
755 schaut besser aus ;)

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-19 14:52
by synex
ja war auch nur zu testzwecken.. aber danke ^^

aber habe festgestellt, dass lighty aber auch zugriffsrechte auf den ordner brauchte ^^ also falls jemand irgendwann das selbe problem hat

Re: lighttpd - fastcgi - socket - permission denied

Posted: 2007-08-19 22:05
by daemotron
Ist leider eine Unart von lighttpd, dass viele Fehler wie Berechtigungs- und Konfigurationsprobleme beim starten nicht im Error-Log, sondern nur auf der Konsole landen (und da kriegt man sie halt nur zu Gesicht, wenn man den Dienst eben direkt startet, ohne Wrapper-Skript).