Linux: Programm starten mit php

Alles, was PHP betrifft, kann hier besprochen werden.

Linux: Programm starten mit php

Postby Morpheus267 » 22. August 2010 21:26

Hallo,
ich wollte mal fragen ob jemand eine Lösung für mein Problem hat. ^^
Und zwar habe ich ein Programm welches ich über php starten möchte.

Folgendes habe ich schon versucht:
#------------
#index.php
#------------
<?php
$output = exec("/home/css2/scrds/orangebox/srcds_run");
echo $output;
?>

Ich habe die index.php und die srcds Datei alle auf chmod 777 gesetzt und die owner sind auch die selben.

safemode ist auch aus.

Was mache ich falsch?
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby glitzi85 » 23. August 2010 08:14

Morpheus267 wrote:Was mache ich falsch?

Uns zu sagen, was nicht funktioniert. Bekommst du eine Fehlermeldung?

Manchmal hilft es auch, die Doku zu lesen:
http://de2.php.net/manual/en/function.exec.php
In deinem Fall tippe ich mal blind auf den Parameter output.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Linux: Programm starten mit php

Postby Morpheus267 » 23. August 2010 16:17

Ich bekomme keine Fehlermeldung nix.
Passiert halt einfach nix.
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby glitzi85 » 23. August 2010 16:33

Dann verwende bitte mal diesen Code:

Code: Select all
#------------
#index.php
#------------
<?php
$output = exec("/home/css2/scrds/orangebox/srcds_run", $ret);
print_r($ret);
?>


Was kommt nun für eine Ausgabe?
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Linux: Programm starten mit php

Postby Morpheus267 » 23. August 2010 17:11

Das ist die Ausgabe:
Code: Select all
Array
(
)
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby glitzi85 » 23. August 2010 19:59

OK, das hatte ich nicht erwartet :shock:

Was passiert denn, wenn du die Datei in der Konsole aufrufst? Kommt da irgendeine Ausgabe?

Hast du irgendwas an der PHP-Config geändert oder Standard XAMPP Installation? Könntest du eventuell mal die srcds_run hier posten?

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Linux: Programm starten mit php

Postby Morpheus267 » 23. August 2010 20:11

Die srcds_run kann ich die so nicht zeigen ist auf meinem Server. ^^
Aber du kannst mich gerne morgen via Teamviewer gucken was da los ist.
Weil anders hats glaube ich keinen sinn.

So gut bin ich nicht in der Materie das ich alles genau sagen kann. ^^
Schreib mir ne PM wann du kannst. :)
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby Knight1 » 24. August 2010 08:15

@Morpheus267
Meines erachtens sind folgende Fragen noch nicht hinreichend beantwortet.
1. Was für eine Rückgabe/Ausgabe erwartest Du? String, Integer oder Array?
2. Hast Du dir mal die Funktionsberschreibung genau und aufmerksam durchgelesen, wo dir glitzi85 bereits den passenden Link zu gegeben hat? Vorallem im Hinblick auf die Übergabe der Ausgabe- und Rückgabe-Variablen an die Funktion?


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Re: Linux: Programm starten mit php

Postby Morpheus267 » 24. August 2010 08:33

Ich habe mich mit der Funktion mehr als 1mal beschäftigt und es ging eigentlich immer aber auf meinen neuen root Server geht es gerade irgendwie nicht.
Deswegen bitte ich euch einen Blick via Teamviewer auf meinen Server zu werfen.
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby Nobbie » 24. August 2010 10:00

Wenn ich das richtig sehe, versuchst Du da irgendwie eine Art CounterStrike Server zu starten. Das solltest Du mal genauer erklären.

Ich kann nur schon einmal sagen, wenn es wirklich so ist, glaube ich nicht, dass das funktionieren wird und es wäre auch die völlig falsche Stelle. So etwas würde wahrscheinlich "root" ausführen müssen während des Bootens. Aber erst einmal erklärst Du uns genau, was sich hinter diesem Programm verbirgt (wie gesagt, meine Google Recherchen deuten auf CounterStrike).

Außerdem kannst Du mal den Programmaufruf ändern, um der Fehlerursache näher zu kommen. Ersetze den Aufruf mal durch diesen hier:

Code: Select all
$output = exec("/home/css2/scrds/orangebox/srcds_run 2>/tmp/srcds.log", $ret);


Anschließend schaust Du mit einem Editor nach, was in /tmp/srcds.log steht (ob überhaupt etwas drin steht und wenn ja, was). Da wird wahrscheinlich eine Fehlermeldung stehen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Linux: Programm starten mit php

Postby Morpheus267 » 24. August 2010 10:17

Also es geht letzendlich nur darum ein Programm mittels php auf Linux Debian aus zu führen. In meinem Fall ist es halt Counter Strike Source. Aber genauso könnte es Shoutcast oder so sein. Hauptsache es funktioniert.
Ich weiß nicht was ich zu dem Programm noch groß sagen soll.
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby Nobbie » 24. August 2010 10:45

Morpheus267 wrote:Also es geht letzendlich nur darum ein Programm mittels php auf Linux Debian aus zu führen. In meinem Fall ist es halt Counter Strike Source. Aber genauso könnte es Shoutcast oder so sein. Hauptsache es funktioniert.


Du hast ebene nur sehr geringe Kenntnisse. Es geht NICHT darum, nur ein Programm irgendwie auszuführen, denn Programme werden nach der Ausführung BEENDET. Davon geht auch der exec() Aufruf aus. Was Du aber willst (beispielsweise auch bei Shoutcast), ist ein Programm zu starten, was NICHT beendet wird sondern die ganze Zeit läuft und auf gewisse "Ereignisse" reagiert. Solche Programme nennt Windows "Dienste" und unter Linux (UNIX) werden sie "Daemon" genannt. Solche Dienste oder Daemons (übrigens ist auch Apache ein solcher Dienst) können oft nur von "root" oder dem entsprechenden System Administrator gestartet werden.

Es wird (wahrscheinlich) nicht möglich sein, ein solches Programm unterhalb von Apache in einem PHP Script zu starten. Oder man muss zumindest das Programm mit anderen Rechten starten. Das ist alles nicht so trivial wie es Dir vorkommt.

Hast Du den Testlauf mal gemacht, wie ich es oben skizziert habe? Da werden möglicherweise sehr wertvolle Fehlermeldungen zu lesen sein (vlelleicht auch nicht - aber "einfach so" lösen wir dieses Problem nicht, da mußt Du mitarbeiten).
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Linux: Programm starten mit php

Postby Morpheus267 » 24. August 2010 13:23

Sooo.
In der Logfile steht schon mal garnix...
Jetzt bekomme ich eine Ausgabe im Browser:
Code: Select all
Array ( [0] => ERROR: Invalid game type 'tf' sepecified. [1] => Tue Aug 24 14:19:36 UTC 2010: Server Failed )


Das ist meine Index.php:
Code: Select all
<?php
//srcds_run Parameter:  -game cstrike +map de_dust2 -maxplayers 24 -port 27050 -autoupdate
$output = exec("/home/css2/srcds/orangebox/srcds_run 2>/tmp/srcds.log", $ret);
print_r($ret);
?>


Eigentlich startet man das Programm ja auch noch mit Parametern, aber die habe ich erstmal weg gelassen.

Wenn ich es allerdings mit parametern starte bekomme ich das hier:
Code: Select all
Array ( [0] => ERROR: Invalid game type 'cstrike' sepecified. [1] => Tue Aug 24 14:23:19 UTC 2010: Server Failed )


Und das hier wäre dann meine Index.php:
Code: Select all
<?php
//srcds_run Parameter:  -game cstrike +map de_dust2 -maxplayers 24 -port 27050 -autoupdate
$output = exec("/home/css2/srcds/orangebox/srcds_run -game cstrike +map de_dust2 -maxplayers 24 -port 27050 -autoupdate 2>/tmp/srcds.log", $ret);
print_r($ret);
?>
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Re: Linux: Programm starten mit php

Postby Nobbie » 24. August 2010 14:19

Morpheus267 wrote:Wenn ich es allerdings mit parametern starte bekomme ich das hier:
Code: Select all
Array ( [0] => ERROR: Invalid game type 'cstrike' sepecified. [1] => Tue Aug 24 14:23:19 UTC 2010: Server Failed )


Und das hier wäre dann meine Index.php:
Code: Select all
<?php
//srcds_run Parameter:  -game cstrike +map de_dust2 -maxplayers 24 -port 27050 -autoupdate
$output = exec("/home/css2/srcds/orangebox/srcds_run -game cstrike +map de_dust2 -maxplayers 24 -port 27050 -autoupdate 2>/tmp/srcds.log", $ret);
print_r($ret);
?>


Na immerhin. Das bedeutet nur leider zunächst, dass es HIER nicht weitergeht: Du musst jetzt erst einmal klären, was denn ein gültiger game type ist (bzw. warum cstrike nicht klappt). Danach geht es (vielleicht) hier weiter.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Linux: Programm starten mit php

Postby Morpheus267 » 24. August 2010 15:24

Das ist für die Datei praktisch das Game das gestartet werden soll als Server.
cstrike ist eigentlich counter strike source.

Wenn ich dieses script in der shell ausführe ist es absulut kein Problem aber so schon irgendwie.

Hier ist mal die Anleitung wie ich den Server installiert habe.
http://www.counter-strike.de/content/server/linux_source.php

Ich weiß nicht wieso es ohne Probleme in der Shell geht und so nicht... :?:
Morpheus267
 
Posts: 14
Joined: 22. August 2010 10:51

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 7 guests