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".
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!