php -> sh -> php

php -> sh -> php

am 03.10.2006 13:23:56 von georg116

Hallo,

ich versuche (als Teil einer Wette ;-)) erfolglos folgendes durchzuführen:

Im Browser ein PHP file aufrufen, dass ein Shellskript startet, dass
wiederum ein PHP Skript startet. Als Resultat soll der echo-Output des
2.PHP Skripts im Browser erscheinen. Auf der Konsole funktioniert es
einwandfrei, im Browser bleibt mir aber das Shellskript hängen...?!?!

Ich starte das Ganze (im Browser) mit dem file 'first.php':


first.php:
$shell_output = shell_exec("/mein_pfad/shellskript.sh");
?>


shellskript.sh:
#!/bin/bash
/usr/bin/php /mein_pfad/second.php


second.php:
echo "Hello World";
?>

Wäre super, wenn ihr mir auf die Sprünge helfen könntet!

dank,georg.

Re: php -> sh -> php

am 03.10.2006 13:43:42 von Hadanite Marasek

Georg Weiler wrote:
> Hallo,
>
> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes durchzuführen:
>
> Im Browser ein PHP file aufrufen, dass ein Shellskript startet, dass
> wiederum ein PHP Skript startet. Als Resultat soll der echo-Output des
> 2.PHP Skripts im Browser erscheinen. Auf der Konsole funktioniert es
> einwandfrei, im Browser bleibt mir aber das Shellskript hängen...?!?!

Sind die Berechtigungen in Ordnung, sprich kann der Benutzer, mit dessen
Rechten der Webserver läuft, das Skript ausführen?

Re: php -> sh -> php

am 03.10.2006 13:43:53 von Kai Ruhnau

Georg Weiler wrote:
> Hallo,
>
> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes durchzuführen:
>
> Im Browser ein PHP file aufrufen, dass ein Shellskript startet, dass
> wiederum ein PHP Skript startet. Als Resultat soll der echo-Output des
> 2.PHP Skripts im Browser erscheinen. Auf der Konsole funktioniert es
> einwandfrei, im Browser bleibt mir aber das Shellskript hängen...?!?!
>
> Ich starte das Ganze (im Browser) mit dem file 'first.php':
>
>
> first.php:
> > $shell_output = shell_exec("/mein_pfad/shellskript.sh");
> ?>

Fe lt da nicht noch die Ausgabe der Ausgabe?

> shellskript.sh:
> #!/bin/bash
> /usr/bin/php /mein_pfad/second.php
>
>
> second.php:
> > echo "Hello World";
> ?>
>
> Wäre super, wenn ihr mir auf die Sprünge helfen könntet!

Darf der Webserverbenutzer das Shellscript ausführen?

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: php -> sh -> php

am 03.10.2006 13:58:29 von georg116

Kai Ruhnau wrote:
> Georg Weiler wrote:
>> Hallo,
>>
>> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes
>> durchzuführen:
>>
>> Im Browser ein PHP file aufrufen, dass ein Shellskript startet, dass
>> wiederum ein PHP Skript startet. Als Resultat soll der echo-Output des
>> 2.PHP Skripts im Browser erscheinen. Auf der Konsole funktioniert es
>> einwandfrei, im Browser bleibt mir aber das Shellskript hängen...?!?!
>>
>> Ich starte das Ganze (im Browser) mit dem file 'first.php':
>>
>>
>> first.php:
>> >> $shell_output = shell_exec("/mein_pfad/shellskript.sh");
>> ?>
>
> Fehlt da nicht noch die Ausgabe der Ausgabe?

ja stimmt, aber auch mit einer echo-ausgabe gehts nicht !!
>
>> shellskript.sh:
>> #!/bin/bash
>> /usr/bin/php /mein_pfad/second.php
>>
>>
>> second.php:
>> >> echo "Hello World";
>> ?>
>>
>> Wäre super, wenn ihr mir auf die Sprünge helfen könntet!
>
> Darf der Webserverbenutzer das Shellscript ausführen?

Ja, alle Rechte sind OK!!

Re: php -> sh -> php

am 03.10.2006 13:58:58 von georg116

Hadanite Marasek wrote:
> Georg Weiler wrote:
>> Hallo,
>>
>> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes durchzuführen:
>>
>> Im Browser ein PHP file aufrufen, dass ein Shellskript startet, dass
>> wiederum ein PHP Skript startet. Als Resultat soll der echo-Output des
>> 2.PHP Skripts im Browser erscheinen. Auf der Konsole funktioniert es
>> einwandfrei, im Browser bleibt mir aber das Shellskript hängen...?!?!
>
> Sind die Berechtigungen in Ordnung, sprich kann der Benutzer, mit dessen
> Rechten der Webserver läuft, das Skript ausführen?

Alle Berechtigungen sind OK!!

Re: php -> sh -> php

am 03.10.2006 14:05:38 von jbusenet

Georg Weiler wrote:

> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes durchzuführen:

Worum Wettest Du denn?

> first.php: [snip]
> second.php: [snip]

die beiden sehen ok aus, aber

> shellskript.sh:
> #!/bin/bash
> /usr/bin/php /mein_pfad/second.php

Dein shell script wird wohl laufen, aber warum sollte es den Output
irgendeines Prozesses (nichts anderes ist second.php fuer das
shell-script) zurueckgeben. Du musst den output von second.php erst
"einlesen" bzw. von der STDIN mitlesen und zurueckgeben.

regards

Julian



--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.

Re: php -> sh -> php

am 03.10.2006 14:14:48 von georg116

Julian Bessenroth wrote:
> Georg Weiler wrote:
>
>> ich versuche (als Teil einer Wette ;-)) erfolglos folgendes
>> durchzuführen:
>
> Worum Wettest Du denn?
>
>> first.php: [snip]
> > second.php: [snip]
>
> die beiden sehen ok aus, aber
>
>> shellskript.sh:
>> #!/bin/bash
>> /usr/bin/php /mein_pfad/second.php
>
> Dein shell script wird wohl laufen, aber warum sollte es den Output
> irgendeines Prozesses (nichts anderes ist second.php fuer das
> shell-script) zurueckgeben. Du musst den output von second.php erst
> "einlesen" bzw. von der STDIN mitlesen und zurueckgeben.

Es funktioniert aber auch nicht, wenn ich im Shellskript nur
'/usr/local/httpd/cgi-bin/php -v' stehen habe! (also in diesem fall
vergessen wir mal kurz second.php. Ich möchte einfach den output vom
shellskript in first.php ausgeben. Offensichtlich "schafft" es das
shellskript nicht, irgendein php kommando zu starten...

Re: php -> sh -> php

am 03.10.2006 14:22:03 von jbusenet

Georg Weiler wrote:

>>> first.php: [snip]
>>
>>> second.php: [snip]
>>
>> die beiden sehen ok aus, aber

das war natuerlich nur partiell richtig -> siehe ausgabe in first.php

> Es funktioniert aber auch nicht, wenn ich im Shellskript nur
> '/usr/local/httpd/cgi-bin/php -v' stehen habe! (also in diesem fall
> vergessen wir mal kurz second.php. Ich möchte einfach den output vom
> shellskript in first.php ausgeben. Offensichtlich "schafft" es das
> shellskript nicht, irgendein php kommando zu starten...

hast Du einfach mal ein "echo" im shell script gemacht?

regards

Julian

--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.

Re: php -> sh -> php

am 03.10.2006 14:24:11 von georg116

Julian Bessenroth wrote:
> Georg Weiler wrote:
>
>>>> first.php: [snip]
>>>
>>>> second.php: [snip]
>>>
>>> die beiden sehen ok aus, aber
>
> das war natuerlich nur partiell richtig -> siehe ausgabe in first.php
>
>> Es funktioniert aber auch nicht, wenn ich im Shellskript nur
>> '/usr/local/httpd/cgi-bin/php -v' stehen habe! (also in diesem fall
>> vergessen wir mal kurz second.php. Ich möchte einfach den output vom
>> shellskript in first.php ausgeben. Offensichtlich "schafft" es das
>> shellskript nicht, irgendein php kommando zu starten...
>
> hast Du einfach mal ein "echo" im shell script gemacht?
>
> regards
>
> Julian
>
Ja, sowohl vor, als auch nach dem php aufruf. beide werden nicht (!!)
ausgegeben. Ist m.M. nach auch ziemlich klar, weil ja first.php wartet,
bis das shelskript fertig ist, und da kann es lange warten...;-)

Re: php -> sh -> php

am 03.10.2006 15:02:48 von jbusenet

Georg Weiler wrote:

> Ja, sowohl vor, als auch nach dem php aufruf. beide werden nicht (!!)
> ausgegeben. Ist m.M. nach auch ziemlich klar, weil ja first.php wartet,
> bis das shelskript fertig ist, und da kann es lange warten...;-)

Ok, also fassen wir zusammen:

Die shell-Datei hat Execution-Rechte.
Die shell-Datei funktioniert? (aufruf an der console?)
warnigs E_ALL on?
vielleicht ein return im shell-skript setzen? (eher eine Verzweiflungstat)

regards

Julian

--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.

Re: php -> sh -> php

am 03.10.2006 15:45:34 von dafox

Georg Weiler schrieb:
> Julian Bessenroth wrote:

>> Dein shell script wird wohl laufen, aber warum sollte es den Output
>> irgendeines Prozesses (nichts anderes ist second.php fuer das
>> shell-script) zurueckgeben. Du musst den output von second.php erst
>> "einlesen" bzw. von der STDIN mitlesen und zurueckgeben.

> Es funktioniert aber auch nicht, wenn ich im Shellskript nur
> '/usr/local/httpd/cgi-bin/php -v' stehen habe! (also in diesem fall
> vergessen wir mal kurz second.php. Ich möchte einfach den output vom
> shellskript in first.php ausgeben. Offensichtlich "schafft" es das
> shellskript nicht, irgendein php kommando zu starten...



PHP 5.1.2-1.dotdeb.2 (cli) (built: Jan 31 2006 01:31:38)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies



,--------------------------------------------------------- test.sh ---
| #!/bin/bash
|
| /bin/bash --version
| /usr/bin/php -v




GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.

PHP 5.1.2-1.dotdeb.2 (cli) (built: Jan 31 2006 01:31:38)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies