Maison >développement back-end >tutoriel php >Pourquoi invite-t-il 'Git' lors de l'exécution de shell_exec n'est pas une commande interne ou externe?
shell_exec
renvoie "git" n'est pas une commande interne ou externe? Cette erreur, "git" n'est pas une commande interne ou externe, un programme de programme ou un dossier opérable, signifie que votre script PHP ne peut pas trouver l'exécutable GIT dans la variable d'environnement de chemin de chemin de son système. shell_exec
tente d'exécuter une commande dans le shell du système, et si le shell ne peut pas localiser la commande git
, cette erreur est renvoyée. Ce n'est pas un problème spécifique au PHP; Il s'agit d'un problème au niveau du système concernant la façon dont votre système d'exploitation recherche des fichiers exécutables. Le problème réside dans le chemin de recherche de commandes, pas dans le code PHP lui-même.
Oui, c'est le coupable le plus probable. Les variables d'environnement de votre système définissent où le système d'exploitation recherche des fichiers exécutables lorsque vous tapez une commande dans le terminal ou lorsqu'un programme comme PHP shell_exec
essaie d'exécuter une commande. La variable PATH
est cruciale. Il s'agit d'une liste d'annuaires, séparés par des demi-colons (sous Windows) ou des Colons (sur Linux / MacOS), où le système recherche des fichiers exécutables.
pour vérifier si votre chemin d'installation GIT est correctement configuré:
Windows:
PATH
(ou Path
). bin
(e.g. répertoires. Sinon, vous devez l'ajouter. Cliquez sur "Nouveau" et ajoutez le chemin. C:Program FilesGitbin
Linux / macOS:
PATH
à l'aide de la commande echo $PATH
dans votre terminal. .bashrc
, .zshrc
, .profile
). Ouvrez ce fichier dans un éditeur de texte (en utilisant nano ~/.bashrc
par exemple), ajoutez le chemin d'accès à votre répertoire git bin
(par exemple, /usr/local/bin
ou /usr/bin
), puis achetez le fichier en utilisant source ~/.bashrc
. git --version
Un problème d'autorisation pourrait-il empêcher
shell_exec
Bien que moins probable que le problème du chemin, les problèmes d'autorisation empêcher de gérer l'exécutable GIT. Ceci est plus courant sur les systèmes Linux / MacOS avec des paramètres d'autorisation plus stricts. Si l'exécutable GIT ou son répertoire parent a des autorisations insuffisantes pour l'utilisateur exécutant le script PHP, échouera. shell_exec
shell_exec
pour vérifier ceci:
Vérifier que l'utilisateur exécutant le script PHP a exécuté des autorisations sur l'exécutable GIT. Vous pouvez utiliser la commande
ls -l
Assurez-vous que l'utilisateur exécutant le serveur Web (par exemple, Apache, Nginx) a les autorisations nécessaires pour exécuter la commande git. Cela nécessite souvent la configuration du serveur Web pour s'exécuter en tant qu'utilisateur avec des privilèges appropriés. Les autorisations de serveur Web mal configurées représentent un risque de sécurité important, alors procédez à la prudence et consultez la documentation de votre serveur Web. 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!