PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP5 FCGI cannot stat program: (scriptname)



StefanR
28.07.07, 10:57
Hallo,

auf einer SUSE 10.1 (64Bit) Box, von 1und1 brauchen wir für ein PHP Skript eine recht aktuelle PHP5 Version. Da auf dem Server noch nen Plesk 8.1.1 läuft, blieb mir eigentlich nur die Wahl zum FCGI Modus.

Die Prozedur, die ich auf dem 1und1 Server vollzogen habe, habe ich auf einer CentOS 4.3 Box auch schonmal vollzogen, da läuft das Teil heute noch ohne größere Probleme. Naja wie dem auch sei. PHP5.2.3 wurde in /usr/local kompiliert. Das Starterskript, liegt in /srv/www/vhosts/VHOST/bin (Verzeichnis, sowie Skript haben im Moment noch Chmod 755, wenn dat endlich läuft gehts auf 740 runter + immutable Bit für das Starterskript)

Meine vhost.conf sieht folgender Maßen aus:

AddHandler fcgid-script .php

DocumentRoot /srv/www/vhosts/VHOST/httpdocs/pub

# Brauch ich eigentlich nicht, weil wird schon httpd.include gesetzt
SuexecUserGroup VHOST_USER psacln
<Directory /srv/www/vhosts/VHOST/httpdocs>
php_admin_flag engine off
FCGIWrapper /srv/www/vhosts/VHOST/bin/php5-script .php
FCGIWrapper /srv/www/vhosts/VHOST/bin/php5-script .php5
#These directives are in the default httpd.include so skip it
#Options +Indexes
allow from all
</Directory>

Und das Starterskript ist eigentlich nix weltbewegendes:
#!/bin/sh
PHPRC=/srv/www/conf/cap-software.de
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/local/php5/bin/php-cgi

Und das einzige, was suexec.log dazu einfällt ist das hier:

[2007-07-28 10:53:02]: uid: (10001/capsoftware) gid: (2524/2524) cmd: php5-script
[2007-07-28 10:53:02]: cannot stat program: (php5-script)
Der Vhost Error Log redet nur von den Primaten und das Standart Error Log, vom Apache wirft nen Notice mit das hier:
Skriptpfad...(communication error), terminated by calling exit(), return code: 117

Jemand ne Idee?

tschloss
28.07.07, 11:11
[2007-07-28 10:53:02]: cannot stat program: (php5-script)

/srv/www/vhosts/VHOST/bin/php5-script
gibt es dieses Skript/Programm?

StefanR
28.07.07, 11:15
gibt es dieses Skript/Programm?

Jap, wie gesagt ist nen Starterskript!

Roger Wilco
28.07.07, 13:05
Aber hat der Webserver auch Zugriff darauf? Bitte beachte, dass auch die Verzeichnisse unter dem das PHP-Binary bzw. dein Starterskript gespeichert ist, die nötigen Zugriffsrechte gesetzt haben müssen.

tschloss
28.07.07, 13:08
Jap, wie gesagt ist nen Starterskript!
Das ist für mich ein Wrapper, kein Starter. Starter sind für mich Skripte, die Daemon/Server-Prozesse starten. Anyway.
Die Zugriffsfrage (Rechte, chroot) hat RogerWilco ja schon gestellt.

StefanR
28.07.07, 13:17
Das ist für mich ein Wrapper, kein Starter. Starter sind für mich Skripte, die Daemon/Server-Prozesse starten.[...]

Auslegungssache. ;) Aber um auf das Thema zurückzukommen. Lesen und Ausführen ist innerhalb und unterhalb des PHP Binarys und des Wrappers möglich. Wie gesagt, habe unter (fast) den selben Bedingungen auf ner CentOS Umgebung das Ganze schonmal zum laufen gebracht.

Roger Wilco
28.07.07, 13:22
Zeig mal die Ausgabe von
ls -ld /srv/www/
ls -ld /srv/www/vhosts/
ls -ld /srv/www/vhosts/VHOST/
ls -ld /srv/www/vhosts/VHOST/bin/
ls -l /srv/www/vhosts/VHOST/bin/php5-script

StefanR
28.07.07, 13:22
Habe das Verzeichnis und den Wrapper jetzt mal root als Eigentümer übergeben. Nur Suexec meckert immer noch mit dem selben Statement:
[2007-07-28 13:18:53]: uid: (10001/capsoftware) gid: (2524/2524) cmd: php5-script
[2007-07-28 13:18:53]: cannot stat program: (php5-script)
Kann ich suexec nen bissel redefreudiger machen? Weil die Aussage ist so überhaupt "nichts" sagend...:)

Roger Wilco
28.07.07, 13:24
Kann ich suexec nen bissel redefreudiger machen? Weil die Aussage ist so überhaupt "nichts" sagend...:)
Ist doch eindeutig. SuExec hat keinen Zugriff auf die Datei (-> `man 2 stat`).

StefanR
28.07.07, 13:28
Zeig mal die Ausgabe von
ls -ld /srv/www/
ls -ld /srv/www/vhosts/
ls -ld /srv/www/vhosts/VHOST/
ls -ld /srv/www/vhosts/VHOST/bin/
ls -l /srv/www/vhosts/VHOST/bin/php5-script

Hier die Ausgabe:

s15259330:/srv/www/vhosts/VHOST # ls -ld /srv/www/vhosts/VHOST/bin/php5-script
-rwxr-xr-x 1 VHOST_USER psacln 137 2007-07-28 10:52 /srv/www/vhosts/VHOST/bin/php5-script
s15259330:/srv/www/vhosts/VHOST # ls -ld /srv/www/vhosts
drwxr-xr-x 6 root root 67 2007-07-03 17:56 /srv/www/vhosts
s15259330:/srv/www/vhosts/VHOST # ls -ld /srv/www/vhosts/VHOST/
drwxr-xr-x 14 root root 4096 2007-07-27 14:08 /srv/www/vhosts/VHOST/
s15259330:/srv/www/vhosts/VHOST # ls -ld /srv/www/vhosts/VHOST/bin
drwxr-xr-x 2 VHOST_USER psacln 24 2007-07-27 14:21 /srv/www/vhosts/VHOST/bin
s15259330:/srv/www/vhosts/VHOST # ls -l /srv/www/vhosts/VHOST/bin/php5-script
-rwxr-xr-x 1 VHOST_USER psacln 137 2007-07-28 10:52 /srv/www/vhosts/VHOST/bin/php5-script

Danke für eure Mühen!

StefanR
28.07.07, 15:24
Suexec scheint sich ja an stat aufzuhängen. Habe jetzt mal als root, und als VHOST_USER stat /pfad/zum/wrapper aufgerufen und das funktioniert einwandfrei. Nur Suexec bzw. Apache möchte das so nicht machen.