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
Linda Hamiltonoriginal
2024-12-14 21:37:19683parcourir

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);   
}

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);
    • 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:
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