lighttpd - fastcgi - socket - permission denied

Apache, Lighttpd, nginx, Cherokee
synex
Posts: 45
Joined: 2005-06-17 23:00
Location: Möckern

lighttpd - fastcgi - socket - permission denied

Post by synex » 2007-08-18 17:12

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/HowToSetupFastCgiIndividualPermissions

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:

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: lighttpd - fastcgi - socket - permission denied

Post by Joe User » 2007-08-18 18:44

Code: Select all

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

synex
Posts: 45
Joined: 2005-06-17 23:00
Location: Möckern

Re: lighttpd - fastcgi - socket - permission denied

Post by synex » 2007-08-18 18:57

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/view ... hp?t=28561 hinbekommen, nur halt unter lighty

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: lighttpd - fastcgi - socket - permission denied

Post by Joe User » 2007-08-18 19:31

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

synex
Posts: 45
Joined: 2005-06-17 23:00
Location: Möckern

Re: lighttpd - fastcgi - socket - permission denied

Post by synex » 2007-08-18 20:24

dies brachte nix, immer noch das selbe problem :(

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: lighttpd - fastcgi - socket - permission denied

Post by Roger Wilco » 2007-08-19 11:53

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?

synex
Posts: 45
Joined: 2005-06-17 23:00
Location: Möckern

Re: lighttpd - fastcgi - socket - permission denied

Post by synex » 2007-08-19 12:03

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

sledge0303
Posts: 695
Joined: 2005-09-16 00:06
Location: Berlin-Reinickendorf

Re: lighttpd - fastcgi - socket - permission denied

Post by sledge0303 » 2007-08-19 14:15

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 ;)

synex
Posts: 45
Joined: 2005-06-17 23:00
Location: Möckern

Re: lighttpd - fastcgi - socket - permission denied

Post by synex » 2007-08-19 14:52

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

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: lighttpd - fastcgi - socket - permission denied

Post by daemotron » 2007-08-19 22:05

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).