Lösung für PHP-Exec-Fehler: Ändern Sie zuerst den Benutzer der Datei in PHP-Benutzer und ändern Sie dann den Inhalt von „exec()“ in „exec('7za x /home/www/test/filename.csv.7z -r -o ./report/sogou/');" reicht aus.
Empfohlen: „PHP-Video-Tutorial“
Die Fallstricke beim Ausführen von exec in PHP (die Fallstricke von Linux-Berechtigungen)
今天在使用php中的exec()命令,下载搜狗推广数据报表压缩包,解压的时候遇到一个坑,搜狗给了一个链接,在浏览器访问的时候直接下载的是.zip的压缩包,于是使用
//下载压缩包 exec("wget -O /home/www/test/filename.zip 'sougou_url'");//注意url要用单引号包含住 //解压 exec('unzip -o /home/www/test/filename.zip);
Das Ergebnis ist ein Fehler: de Komprimierung fehlgeschlagen, Wenn ich also zum Shell-Terminal gehe, erhalte ich immer noch eine Fehlermeldung, wenn ich Befehle zum Dekomprimieren verwende, wie in der Abbildung gezeigt:
Ich habe den Betrieb und die Wartung gefragt und sie sagten, dass das Dateiformat kein ZIP-Format sei, nachdem sie verschiedene Dekomprimierungen ausprobiert hatten Befehle, es stellte sich heraus, dass es sich um ein komprimiertes Paket im .7z-Format handelte. Dies ist ziemlich verwirrend. Da das Dekomprimierungstool unter Windows in das 7z-Format integriert ist, wird beim Dekomprimieren unter Windows kein Fehler gemeldet :
Da das Problem nun gefunden wurde, kann es gelöst werden (Hinweis: p7zip ist auf Centos standardmäßig nicht verfügbar). Sie müssen yum install -y p7zip) installieren.
Ändern Sie dann die obige exec() as Folgendes:
exec("wget -O /home/www/test/filename.7z 'sogou_url'"); chmod("./report/sogou/tmp/filename.7z",0777);//此处要给权限否则下一个命令无法执行 exec('7za x /home/www/test/filename.csv.7z -r -o./report/sogou/');
Merken Sie sich die Benutzerberechtigungen der Datei, da ich den Root-Benutzer im Terminal verwende. Nach dem Ändern der Dateiberechtigungen wird das Programm ausgeführt. Wenn exec die Datei ausführt, wird ein Fehler ohne Berechtigungen gemeldet Der Benutzer, zu dem PHP gehört, ist nicht root. Sie müssen nur den Benutzer der Datei in den PHP-Benutzer ändern
Das obige ist der detaillierte Inhalt vonSo lösen Sie das PHP-Exec-Fehlerproblem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!