Maison > développement back-end > tutoriel php > Pourquoi ma fonction PHP exec() ne fonctionne-t-elle pas ?

Pourquoi ma fonction PHP exec() ne fonctionne-t-elle pas ?

Linda Hamilton
Libérer: 2024-12-14 21:37:19
original
784 Les gens l'ont consulté

Why Isn't My PHP exec() Function Working?

Dépannage de la fonction exec() en PHP

Faire face à des problèmes avec la fonction exec() peut être frustrant, surtout lorsqu'elle ne donne aucun résultat des résultats évidents. Cet article fournit un guide complet pour vous aider à déboguer et résoudre de tels problèmes.

Problème :
La fonction exec() ne parvient pas à exécuter les commandes sur un serveur, malgré la désactivation de safe_mode et vérifier la fonctionnalité des commandes de la console. Les autorisations pour les applications ont été définies correctement.

Extraits de code :
Les extraits de code suivants ont été tentés :

echo exec('/usr/bin/whoami');

echo exec('whoami');

exec('whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

exec('/usr/bin/whoami 2>&amp;1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}
Copier après la connexion

Les deux derniers extraits de code affichent un erreur et un tableau vide. Le support du serveur n'a pas pu vous aider.

Solution :

  1. Vérifiez les fonctions désactivées :

    • Accédez à /etc/php.ini et vérifiez si exec est répertorié sous Disable_functions.
    • S'il est présent, supprimez-le et redémarrez Apache.
  2. Activer le mode débogage :

    • Pour un débogage plus facile, utilisez ce qui suit code :

      #!/usr/bin/php
      ini_set("display_errors", 1);
      ini_set("track_errors", 1);
      ini_set("html_errors", 1);
      error_reporting(E_ALL);
      Copier après la connexion
    • Exécuter le script manuellement : chmod x myscript.php et ./myscript.php.
  3. Autorisation Problèmes :

    • Créer un script bash qui exécute une commande simple, par exemple, faites écho à "hello world."
    • Définissez les autorisations pour le fichier et le dossier à l'aide de chmod 755.
    • Essayez d'exécuter le script.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal