Maison >développement back-end >Problème PHP >Que faire si php ne peut pas exécuter de commandes externes

Que faire si php ne peut pas exécuter de commandes externes

藏色散人
藏色散人original
2022-10-25 10:06:581392parcourir

Solution au problème selon lequel php ne peut pas exécuter de commandes externes : 1. Vérifiez si le mode sans échec est activé ; 2. Exécutez le fichier sous le chemin "safe_mode_exec_dir" ; 3. Configurez le chemin spécifique dans "php.ini".

Que faire si php ne peut pas exécuter de commandes externes

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.

Que dois-je faire si php ne peut pas exécuter de commandes externes ?

Description du problème :

Je prévois d'utiliser PHP pour exécuter adb.exe pour me connecter et communiquer avec le téléphone Android, mais en utilisant exec("adb connect 192.168.1.10",$out) ; ne fonctionne pas Cela ne fonctionne pas,

Par exemple

exec("adb connect 192.168.1.10",$out);
print_r($out);

Il devrait avoir des informations de connexion de sortie ou des informations d'erreur, mais il n'y a rien, mais quand je l'exécute sous cmd, il n'y a pas de problème

Au final, il y a pas question, j'utilise bat pour écrire la commande, et php exécute bat, ce n'est pas grave, mais lors de l'exécution de bat en php, il semble que les variables d'environnement Windows ne prennent pas effet

C'est donc très gênant ;

Quelqu'un peut-il aidez-moi et dites-moi comment utiliser

exec("adb connect 192.168.1.10",$ out);

Ce formulaire peut être utilisé pour exécuter

ou implémenter des variables d'environnement dans le processus d'exécution de PHP bat

J'ai j'ai essayé d'autres commandes de doc comme la commande fc, qui peut être exécutée avec exec

et la commande fc peut être exécutée en appelant c:windowssystem32fc pour fonctionner

Mais j'ai copié ma base de données dans c:windowssystem32 et ce n'est toujours pas le cas. ça ne marche pas

 ! ! !

Solution :

Vous devez d'abord vous assurer que le mode sans échec est activé.

Lorsque le mode sans échec est activé, les fichiers ne peuvent être exécutés que sous le chemin safe_mode_exec_dir

Le chemin spécifique est configuré dans php.ini. Élément de configuration : safe_mode_exec_dir

Ce qui suit est la description officielle de PHP :

safe_mode_exec_dir

Si PHP utilise le mode sans échec, system() et d'autres fonctions d'exécution de programme refuseront de démarrer des programmes qui ne se trouvent pas dans ce répertoire. Vous devez utiliser / comme séparateur de répertoire, y compris sous Windows.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn