linux - PHP shell_exec() system() 执行 unzip 不成功
业务上有个需求,做文件操作,通过PHP与shell交互实现
system(),shell_exec()执行其他如mv,cp,list等系统命令是可以执行的,PHP设置相应的安全配置允许PHP系统函数操作,但在解压zip文件的时候总是无法成功。
权限也是通过a+w改成所有权限了。
我尝试过的命令如下
<code>shell_exec("unzip " . BASE_PATH . "test/test.zip"); //system('echo "密码" | sudo -S unzip ' . BASE_PATH . 'test/test.zip'); system('echo "123456" | sudo -u root -S unzip ' . BASE_PATH . 'test/test.zip'); system('echo "123456" | sudo -S unzip ' . BASE_PATH . 'test/test.zip');</code>
然后通过浏览器访问相应脚本。
请教各位,是不是还有什么地方没有注意到的呢?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题解决了,在执行shell_exec()之前要更改当前的工作目录。
<code>chdir(BASE_PATH. "test/"); </code>
不过由此有另外的问题,为什么当前的PHP目录会是BASE_PATH[我的项目根目录]?
回复内容:
业务上有个需求,做文件操作,通过PHP与shell交互实现
system(),shell_exec()执行其他如mv,cp,list等系统命令是可以执行的,PHP设置相应的安全配置允许PHP系统函数操作,但在解压zip文件的时候总是无法成功。
权限也是通过a+w改成所有权限了。
我尝试过的命令如下
<code>shell_exec("unzip " . BASE_PATH . "test/test.zip"); //system('echo "密码" | sudo -S unzip ' . BASE_PATH . 'test/test.zip'); system('echo "123456" | sudo -u root -S unzip ' . BASE_PATH . 'test/test.zip'); system('echo "123456" | sudo -S unzip ' . BASE_PATH . 'test/test.zip');</code>
然后通过浏览器访问相应脚本。
请教各位,是不是还有什么地方没有注意到的呢?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题解决了,在执行shell_exec()之前要更改当前的工作目录。
<code>chdir(BASE_PATH. "test/"); </code>
不过由此有另外的问题,为什么当前的PHP目录会是BASE_PATH[我的项目根目录]?
这个是 PHP
的常量啊,系统应该没有 BASE_PATH
这个常量的,应该是你使用的框架或你包含的某些文件中定义了这个常量。可以通过 get_defined_constants()
方法来获取有哪些已经定义的常量。
为什么要先使用 chdir
呢
是因为
unzip
这个命令默认是将文件解压到当前目录下,而不是 zip 文件所在的目录,所以你需要知道现在在哪个目录,可以使用system('pwd');
来查看一下,然后看你的 Web 用户对这个目录有没有相应的权限,理论上来说这个目录应该是你这个PHP
程序所在的目录,但是呢,如果你是使用Cli
模式下的话,那就是你当前所在的目录,与PHP
程序在哪无关了。当然也可以不用
chdir
啦,这需要你对unzip
命令有相应的了解,其实加一个-d <dir></dir>
就可以把解压后的文件放到指定目录了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

Les principaux avantages du PHP comprennent la facilité d'apprentissage, un soutien solide sur le développement Web, les bibliothèques et les cadres riches, les performances élevées et l'évolutivité, la compatibilité multiplateforme et la rentabilité. 1) Facile à apprendre et à utiliser, adapté aux débutants; 2) une bonne intégration avec les serveurs Web et prend en charge plusieurs bases de données; 3) ont des cadres puissants tels que Laravel; 4) Des performances élevées peuvent être obtenues grâce à l'optimisation; 5) prendre en charge plusieurs systèmes d'exploitation; 6) Open source pour réduire les coûts de développement.

PHP a façonné le réseau au cours des dernières décennies et continuera de jouer un rôle important dans le développement Web. 1) PHP est originaire de 1994 et est devenu le premier choix pour les développeurs en raison de sa facilité d'utilisation et de son intégration transparente avec MySQL. 2) Ses fonctions principales incluent la génération de contenu dynamique et l'intégration à la base de données, ce qui permet au site Web d'être mis à jour en temps réel et affiché de manière personnalisée. 3) La large application et l'écosystème de PHP ont motivé son impact à long terme, mais il fait également face à des mises à jour de version et à des défis de sécurité. 4) Les améliorations des performances ces dernières années, telles que la sortie de PHP7, lui permettent de rivaliser avec les langues modernes. 5) À l'avenir, PHP doit faire face à de nouveaux défis tels que la conteneurisation et les microservices, mais sa flexibilité et sa communauté active le rendent adaptable.

Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.

VS Code pour changer le mode chinois: ouvrez l'interface des paramètres (Windows / Linux: Ctrl, macOS: CMD,) Recherchez des paramètres "Editor: Language" Sélectionnez "Chine

Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

VS Code est le code Visual Studio Nom complet, qui est un éditeur de code multiplateforme gratuit et open source et un environnement de développement développé par Microsoft. Il prend en charge un large éventail de langages de programmation et fournit une mise en surbrillance de syntaxe, une complétion automatique du code, des extraits de code et des invites intelligentes pour améliorer l'efficacité de développement. Grâce à un écosystème d'extension riche, les utilisateurs peuvent ajouter des extensions à des besoins et des langues spécifiques, tels que les débogueurs, les outils de mise en forme de code et les intégrations GIT. VS Code comprend également un débogueur intuitif qui aide à trouver et à résoudre rapidement les bogues dans votre code.
