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

Warum funktioniert meine PHP-Funktion exec() nicht?

Linda Hamilton
Freigeben: 2024-12-14 21:37:19
Original
680 Leute haben es durchsucht

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);   
}
Nach dem Login kopieren

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);
      Nach dem Login kopieren
    • 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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage