| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

31-03-2010, 21:55
|
|
Crake
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 150
|
|
exec() ohne Reaktion und Rückmeldung...
Das Problem: Ich versuche mittels eines PHP-Scriptes eine Anwendung zu starten, allerdings gibt mir exec() keinerlei Meldung zurück.
PHP-Code:
<?php
if($_REQUEST["send"] == 1)
{
exec("sudo /home/gameserver/relay/relay
/dedicated_cfg=dedicated_cfg.txt /join=" . $_REQUEST["login"] . " /joinpassword=" . $_REQUEST["specpw"], $results);
print_r($results);
}
?>
Ausgeführt werden soll defakto folgender Befehl im entsprechenden Verzeichnis: relay /dedicated_cfg=dedicated_cfg.txt /join=the_login_of_the_game_server /joinpassword=spectator_password_of_the_game_server_if_needed
Stutzig macht mich, dass ich keinerlei Meldung erhalte. Der Part innerhalb des IF-Zweiges wird definitiv ausgeführt, was ich mit einer Testvariablen bereits überprüft habe.
In "etc/sudoers" habe ich testweise mal eine Erlaubnis für das gesamte Webverzeichnis eingefügt.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
Geändert von Crake (01-04-2010 um 00:12 Uhr)
|

31-03-2010, 22:35
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
Zitat:
|
Zitat von http://de3.php.net/manual/de/function.exec.php
exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen.
|
Insofern verstehe ich dein Problem nicht.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

31-03-2010, 23:45
|
|
Crake
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 150
|
|
Ja, aber Fehlermeldungen bzw. die Ausgabe über das 2. Argument ($results) erhalte ich ebenfalls nicht. Weshalb ich keinerlei Anhaltspunkt habe, weshalb der Aufruf nicht den gewünschten Erfolg beschert.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
|

31-03-2010, 23:57
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Dann ist vermutlich dein Error-Reporting zu niedrig eingestellt und exec per php.ini verboten. In den Forenregeln steht, wie du das Error-Reporting für das aktuelle Script aufdrehst, um meine Vermutung zu prüfen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

01-04-2010, 00:14
|
|
Crake
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 150
|
|
Zitat:
Zitat von AmicaNoctis
Dann ist vermutlich dein Error-Reporting zu niedrig eingestellt und exec per php.ini verboten. In den Forenregeln steht, wie du das Error-Reporting für das aktuelle Script aufdrehst, um meine Vermutung zu prüfen.
|
exec() selbst ist aktiviert.
Was das Error-Reporting anbelangt: Nicht dran gedacht, werde es mal versuchen.
Edit: Kein PHP-Error. Weiterhin anhnungslos.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
Geändert von Crake (01-04-2010 um 00:27 Uhr)
|

01-04-2010, 10:42
|
|
akhe
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 2
|
|
Dann schau doch mal in die System-Logs, evtl. wird dir das Aufschluss darüber geben was schief läuft. Alternative dazu ist die Ausgabe des Systembefehls in eine Datei umzulenken und dir diese im Anschluss auszugeben. Nicht besonders elegant, sollte es aber auch tun:
Code:
exec('befehl > /serverpfad/datei.txt');
echo file_get_contents('/serverpfad/datei.txt');
PS: lt. Doku von PHP erwartet exec ein Array, hast du result vorher als Array definiert?
|

01-04-2010, 10:57
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Dann liegt es wahrscheinlich daran, dass sudo ein Passwort erwartet, aber auf diesem Wege nicht bekommt. Im Handbuch steht ein vielleicht hilfreicher User-Kommentar. Hier ist noch ein älterer Thread mit einem ähnlichen Problem.
Wenn das auch nicht hilft: "php exec sudo" googlen.
@akhe: Der zweite und der dritte Parameter werden per Referenz übergeben, müssen also vorher noch nicht definiert sein.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

01-04-2010, 11:45
|
|
akhe
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 2
|
|
@AmicaNoctis, die Theorie interessiert mich dann doch, wie kann ich was referenzieren was noch nicht vorhanden ist? Man kann das ganze in PHP bei der Übergabe deklarieren, aber komplett ohne funktioniert nicht wenn ein Array erwartet wird.
|

01-04-2010, 11:49
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von akhe
Man kann das ganze in PHP bei der Übergabe deklarieren, aber komplett ohne funktioniert nicht wenn ein Array erwartet wird.
|
Unsinn. Lies das Handbuch.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|