GNU/Linux >> Tutoriels Linux >  >> Linux

PHP exec - vérifier si activé ou désactivé

Cela vérifiera que exec est disponible et activé AVANT d'essayer de l'exécuter. Si vous exécutez exec() et que la fonction n'existe pas ou est désactivée, un avertissement sera généré. Selon les paramètres du serveur, le rendu peut être rendu au navigateur et écrira presque toujours une ligne dans un fichier journal =impact sur les performances.

// Exec function exists.
// Exec is not disabled.
// Safe Mode is not on.
$exec_enabled =
   function_exists('exec') &&
   !in_array('exec', array_map('trim', explode(', ', ini_get('disable_functions')))) &&
   strtolower(ini_get('safe_mode')) != 1
;


if($exec_enabled) { exec('blah'); }

if(function_exists('exec')) {
    echo "exec is enabled";
}

ini_get('disable_functions')

Ce que vous voulez réellement faire, c'est utiliser ini_get('disable_functions') pour savoir s'il est disponible pour vous :

<?php
function exec_enabled() {
    $disabled = explode(',', ini_get('disable_functions'));
    return !in_array('exec', $disabled);
}
?>

Répondu sur stackoverflow ici :Vérifiez si "exec" est désactivé, ce qui semble provenir de la page PHP Man :http://php.net/manual/en/function.exec.php#97187

Chemin

Si ce qui précède renvoie vrai (vous pouvez utiliser exec()), mais que PHP ne peut toujours pas déclencher le script, il y a de fortes chances que vous ayez un problème de chemin pour ce script, testez ceci en faisant :

print exec('which bash');

puis essayez

print exec('which ogr2ogr');

Cela vérifiera si la fonction fonctionne réellement (autorisations, droits, etc.) :

if(@exec('echo EXEC') == 'EXEC'){
    echo 'exec works';
}

Linux
  1. Comment vérifier quels modules Apache sont activés/chargés sous Linux

  2. Comment vérifier la vitesse de votre connexion ssh

  3. Cron Job pour vérifier si le script Php est en cours d'exécution, sinon, exécutez-le ?

  4. Comment vérifier les modules PHP et Apache installés sur Linux ?

  5. Comment savoir si la configuration NUMA est activée ou désactivée ?

Comment vérifier la version de PHP

Comment vérifier la version de PHP sur Ubuntu

Comment lister les modules chargés ou activés en PHP à partir de la ligne de commande

Mise à jour de PHP 5.6 à 7

Comment vérifier la version de PHP sous Linux

Comment vérifier si le noyau Linux est activé ou non avec Retpoline ?