Was tun, wenn PHP Exec nicht ausgeführt werden kann?
Lösung für das Problem, dass PHP Exec nicht ausgeführt werden kann: 1. Suchen Sie die PHP-Konfigurationsdatei php.ini, suchen Sie in der Datei nach „disable_functions“ und entfernen Sie „exec“ und „shell_exec“. 2. Gehen Sie zum Server Ändern Sie die Dateiberechtigungen. 3. Ändern Sie den abgesicherten Modus in der Konfiguration: „safe_mode=On“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.
Was soll ich tun, wenn PHP Exec nicht ausgeführt werden kann?
Analyse der Ursache des Befehlsfehlers bei der PHP-Exec-Ausführung
Problemhintergrund:
Aufgrund der Projektanforderungen ist es erforderlich, Bilder von der HTML-Seite zu generieren. Verwenden Sie das Tool phantomjs (zum Lernen klicken). Machen Sie einen Screenshot der Seite und führen Sie ihn im Cmd-Fenster aus. Kein Problem. Aber der Exec-Vorgang in PHP ist fehlgeschlagen, was darauf hindeutet, dass PhantomJS keine interne Anweisung ist.
Problemlösung:
Finden Sie verschiedene Lösungen in Baidu:
Lösung 1:
1. Ändern Sie php.ini
Suchen Sie die PHP-Konfigurationsdatei php.ini, wenn Sie Xingwaiphp automatisch verwenden. Das Installationsprogramm konfiguriert das PHP-Umgebung. Diese Datei befindet sich im Verzeichnis C:WINDOWS.
Suchen Sie in der Datei nach „disable_functions“, finden Sie sie, entfernen Sie „exec“ und „shell_exec“ und speichern Sie dann die Datei.
2. Ändern Sie die Eigenschaften der Datei cmd.exe
Geben Sie C:WINDOWSsystem32 ein, suchen Sie die Datei cmd.exe, klicken Sie mit der rechten Maustaste -> Eigenschaften, fügen Sie das Internet-Gastkonto in den „Sicherheit“-Einstellungen hinzu, das ist IUSR_ *** ***Dieses Konto und erteilen Sie dann die Berechtigungen „Lesen und Ausführen“ und „Lesen“.
Option 2:
Es soll sich um ein Berechtigungsproblem handeln.
Lösung: https://www.php.cn/php-weizijiaocheng-498092.html
Option 3:
Die in PHP integrierten Funktionen exec und system können Systembefehle (Shell-Befehle) aufrufen Natürlich gibt es auch Durchgangs-, Escapeshellcmd- und andere Funktionen.
In vielen Fällen kann uns die Verwendung der Exec-, System- und anderen Funktionen von PHP zum Aufrufen von Systembefehlen dabei helfen, unsere Arbeit besser und schneller abzuschließen. Exec hat mir beispielsweise vor zwei Tagen sehr geholfen, als ich .rar-Dateien stapelweise verarbeitete.
Heute werde ich die häufig verwendeten Anrufsystemfunktionen sortieren und meine Erfahrungen mit allen teilen.
Hinweis: Wenn Sie diese beiden Funktionen nutzen möchten, muss der abgesicherte Modus in php.ini ausgeschaltet sein, da PHP sonst aus Sicherheitsgründen den Aufruf von Systembefehlen nicht zulässt.
Schauen Sie sich zunächst die Erklärung dieser beiden Funktionen im PHP-Handbuch an:
exec --- Externe Programme ausführen
语法 : string exec ( string command [, array &output [, int &return_var]] )
Erklärung:
exec() führt den angegebenen Befehl aus, gibt aber nichts aus. Geben Sie einfach die letzte Zeile des Befehlsergebnisses zurück. Wenn Sie einen Befehl ausführen und alle Daten aus dem Befehl abrufen müssen, können Sie die Funktion passhru() verwenden.
Wenn das Parameter-Array angegeben ist, wird das angegebene Array mit jeder vom Befehl ausgegebenen Zeile gefüllt. Hinweis: Wenn das Array bereits einige Elemente enthält, hängt exec() diese an das Ende des Arrays an Wenn Sie nicht möchten, dass diese Funktion Elemente anhängt, können Sie unset() aufrufen, bevor Sie das Array an exec() übergeben.
Wenn die Parameter array und return_var angegeben sind, wird der zur Ausführung zurückgegebene Statusbefehl in diese Variable geschrieben.
Hinweis: Wenn Sie zulassen, dass Daten aus Benutzereingaben an diese Funktion übergeben werden, sollten Sie escapeshellcmd() verwenden, um sicherzustellen, dass der Benutzer das System nicht dazu verleiten kann, beliebige Befehle auszuführen.
Hinweis: Wenn Sie diese Funktion zum Starten eines Programms verwenden und es während der Ausführung im Hintergrund belassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen Ausgabedatenstrom umgeleitet wird, da sonst PHP hängen bleibt bis die Programmausführung endet.
system --- Führen Sie ein externes Programm aus und zeigen Sie die Ausgabe an
语法 : string system ( string command [, int &return_var] )
Beschreibung:
system() führt den angegebenen Befehl aus und gibt das Ergebnis aus. Wenn der Parameter return_var angegeben ist, wird der Statuscode des ausgeführten Befehls in diese Variable geschrieben.
Hinweis: Wenn Sie zulassen, dass Daten aus Benutzereingaben an diese Funktion übergeben werden, sollten Sie escapeshellcmd() verwenden, um sicherzustellen, dass der Benutzer das System nicht dazu verleiten kann, beliebige Befehle auszuführen.
Hinweis: Wenn Sie diese Funktion zum Starten eines Programms verwenden und es im Hintergrund laufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen Ausgabedatenstrom umgeleitet wird, da PHP sonst hängen bleibt bis die Programmausführung endet.
Wenn PHP als Servermodul ausgeführt wird, versucht system(), den Ausgabepuffer des Webservers nach der Ausgabe jeder Zeile automatisch zu löschen.
Die letzte Zeile des Befehls wird bei Erfolg zurückgegeben, bei Fehlschlag wird false zurückgegeben.
Wenn Sie einen Befehl ausführen und alle Daten aus dem Befehl abrufen müssen, können Sie die Funktion passhru() verwenden.
这二个都是用来调用系统shell命令,
不同点:
exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败
systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败
exec示例:
以下为引用的内容:
<?php $a = exec("dir",$out,$status); print_r($a); print_r($out); print_r($status); ?>
system示例:
以下为引用的内容:
<?php $a = system("dir",$out); print_r($a); print_r($out); ?>
总结:
以上三个解决方案都是从百度搜索到的。
第一个解决方案我查看了配置,不存在这种情况,pass。
第二个解决方案由于需要改服务器权限,情况不允许,没试。
第三个解决方案参考了一下,修改了配置中的安全模式,safe_mode=On;然后问题迎刃而解。
OK,以上是我解决问题的过程。希望可以帮到广大像我一样的小白。
推荐学习:《PHP视频教程》
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP Exec nicht ausgeführt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.
