• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

PHP4 führt Linuxprogramme nicht aus

Ich habe nen Problem. Ich möchte mit PHP4 und apache über eine PHP-Datei ein Linuxkomando ausführen.
Aber mit exec oder system funktioniert die ganze sache irgendie nicht.
Ich bekomme keine Fehlermeldung, aber passieren tut auch nichts. Und ich habe dir Rechte für das script, das ich ausführen möchte mal probeweise auf 777 gesetzt, aber es funktioniert trozdem nicht.

Versucht habe ich volgendes:
Code:
<?
        echo "TEST!";
        exec ("/ABSOLUTERPFAD/ZUM/SCRIPT");
        echo "TEST2";
?<
oder:
Code:
<?
        echo "TEST!";
        exec ('/ABSOLUTERPFAD/ZUM/SCRIPT');
        echo "TEST2";
?<
Ich wäre dankbar, wenn ihr mir helfen könntet.

Danke schonmal.
 
OP
Hugch
Also ka was der safe Mod ist, aber die Pfadangaben stimmen. Ich habe es ja auch schon mit anderen befehlen und soetwas versucht.

Ich habe mich mal ein wenig schlau gemacht über den save mode und der scheint aus zu sein.

Wenn ich in die Datei test einen echo Befehl einbaue und den dann mit mit dem Befehl
Code:
echo `/srv/www/htdocs/test`;
in der PHP Datei ausführen dann bekomme ich die Meldung aus dem script zurück. Aber all anderen Befehle, die nicht mit echos sind, die gehen nicht.

Also hab eich das Problem immer noch.
Es geht nicht mit:
Code:
exec()
system()
passthru()
nicht. Kannst du mir da helfen?
 
um herauszufinden, ob der Safe-Mode bei dir aktiviert ist und ob du scripts ausführen darfst unter php, öffne bitte die Datei mit folgenden Text in deinem Browser (geparst natürlich) :

Code:
<?php
// phpinfo.php

phpinfo();
?>

Was soll denn dein Script machen, das du ausführst? (Dateien anlegen etc. ... ) Und ist es ein PHP-Script oder irgendwas anderes? Das geht nicht so ganz aus deiner Beschreibung hervor.
 
OP
Hugch
Safe mode ist aus
  • safe_mode Off Off
    safe_mode_exec_dir no value no value
    safe_mode_gid Off Off
    safe_mode_include_dir no value no value

Mein script greift mit Hilfe des sudobefehls auf die Parallele-Schnitstelle zu. also das heißt, es ist einfach ein bash script.
 
mmmh... dann müssten eigentlich die drei Befehle
Code:
exec()
system()
passthru()
die richtigen sein. Jedoch bin ich noch nicht tief genug in Linux drin, um dir weiterhelfen zu können (vielleicht blöde Frage, aber "su" musst du nicht sein für dein Script, oder?)...

Vielleicht steht ja in der PHP-Hilfe noch mehr drin, aber so weit ich mich erinnern kann, sind es genau die drei Befehle mit denen man auf die Shell zugreifen kann.

Was mir noch einfällt: PHP gibt, glaube ich, nur die letzte ausgabe des scripts zurück...
 
OP
Hugch
Ne. man muss kein root sein um mein script auszuführen.
Das habe ich ja schon mit dem sudo Befehl behoben.

Aber das ist ja gerade das komische, ich weiß nämlich auch, dass das die drei Befehle sind. Und beim ausführen der Datei gibt es auch keine Fehlermeldung und funktionieren tut es auch net. Mit Linux kenne ich mich eigendlich schon ganz gut aus, aber bei PHP haperts bei mir ein wenig.

Und ich kann in das script sovile echo Befehle reinschreiben wie ich will, die bekomme ich schon zurück. Also gibt php nicht nur die letzte Zeile zurück.
 
Also so ganz schlau werde ich aus Deinen Angaben nicht.
Das Shell-script funktioniert?
Wo hast Du denn welche echo-Befehle? Im Shell-script oder im php-script?
 
OP
Hugch
Sorry, wenn meine Antworten ein bischen viel verwirrt haben.

Also mein schellscript funktioniert natrülich.

Wenn ich in dem Schellscript ein echo einbau und in der PHP-Datei
Code:
echo `/Pfad/zur/Datei`;
Dann funktioniert die ganze sachen. Aber dann werden in dem schellsript nur die echo Befehle ausgegeben und mit den anderen Befehlen passiert gar nichts

Und wenn ich das Schellscript mit den anderen drei Befehlen die ich da oben gepostet habe ausführe, bekomme ich von der PHP Datei keinen Fehler wenn ich den aufrufen, aber das schellscript wurde nicht aktiviert.
Wie gesagt, der save Mode ist aus und die Rechte stimmen soweit auch.

Aber klappen tut es trozdem net.
 
OP
Hugch
Leute alles auf Anfang.

Linux wird für mcih immer ein großes Rätsel bleiben. Wenn man denkt, man kennt sich mitlerweile ganz gut aus, dann hat man falsch gedacht.

Ich habe das mit meinem Server gemacht, was ich normalerweise überhaubt nicht gerne mache. Und das war in diesem Fall den einfach mal rebooten lassen.

Siehe da, es funktioniert wie aus Geisterhand.

Trozdem thx for help Leute.
 
Oben