Heim >Backend-Entwicklung >PHP-Tutorial >Warum funktioniert meine PHP-Funktion exec() nicht?

Warum funktioniert meine PHP-Funktion exec() nicht?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 21:37:19682Durchsuche

Why Isn't My PHP exec() Function Working?

Fehlerbehebung bei der exec()-Funktion in PHP

Probleme mit der exec()-Funktion können frustrierend sein, insbesondere wenn sie keine Ergebnisse liefert offensichtliche Ergebnisse. Dieser Artikel bietet eine umfassende Anleitung, die Ihnen beim Debuggen und Beheben solcher Probleme hilft.

Problem:
Die Funktion exec() kann keine Befehle auf einem Server ausführen, obwohl der Safe_mode und deaktiviert wurden Überprüfung der Funktionalität von Konsolenbefehlen. Berechtigungen für Anwendungen wurden korrekt festgelegt.

Codeschnipsel:
Die folgenden Codeschnipsel wurden ausprobiert:

echo exec('/usr/bin/whoami');

echo exec('whoami');

exec('whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

exec('/usr/bin/whoami 2>&amp;1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

Die letzten beiden Codeschnipsel zeigen eine an Fehler und ein leeres Array. Der Server-Support konnte nicht weiterhelfen.

Lösung:

  1. Disable_functions prüfen:

    • Navigieren Sie zu /etc/php.ini und prüfen Sie, ob exec darunter aufgeführt ist disable_functions.
    • Falls vorhanden, entfernen Sie es und starten Sie Apache neu.
  2. Debug-Modus aktivieren:

    • Um das Debuggen zu vereinfachen, verwenden Sie Folgendes Code:

      #!/usr/bin/php
      ini_set("display_errors", 1);
      ini_set("track_errors", 1);
      ini_set("html_errors", 1);
      error_reporting(E_ALL);
    • Führen Sie das Skript manuell aus: chmod x myscript.php und ./myscript.php.
  3. Erlaubnis Probleme:

    • Erstellen Sie ein Bash-Skript, das einen einfachen Befehl ausführt. B. echo „Hallo Welt“.
    • Legen Sie die Berechtigungen für die Datei und den Ordner mit chmod 755 fest.
    • Versuchen Sie, das Skript auszuführen.

Das obige ist der detaillierte Inhalt vonWarum funktioniert meine PHP-Funktion exec() nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn