PHP exec - vérifiez si elle est activée ou désactivée
Est-il un moyen de vérifier dans un script php si exec()
est activé ou désactivé sur un serveur?
- Qu'entendez-vous par "activé ou désactivé" ?
Vous devez vous connecter pour publier un commentaire.
function_exists()
vérifie également si une fonction est désactivée, preuveIl s'agira de vérifier si la fonction fonctionne réellement (autorisations, droits, etc):
@exec
, le@
supprimer les erreurs de niveau d'avertissementini_get('disable_functions')
Ce que vous voulez faire est d'utiliser
ini_get('disable_functions')
pour savoir s'il est disponible pour vous:De réponse sur stackoverflow ici: Vérifiez si "exec" est désactivé, Qui, de fait, semble venir de l'PHP Homme page: http://php.net/manual/en/function.exec.php#97187
Chemin
Si le ci-dessus renvoie vrai (vous pouvez utiliser exec()), mais PHP ne peut toujours pas d'exécuter le script, il ya une bonne chance que vous avez un problème de chemin d'accès de ce script, le tester en faisant:
et puis essayez
Il s'agira de vérifier que exec est disponible et activée AVANT d'essayer de l'exécuter. Si vous exécutez exec() et la fonction n'existe pas ou est désactivé, un message d'alerte sera générée. Selon les paramètres du serveur qui peut rendre le navigateur et sera presque-toujours écrire une ligne dans un fichier de log = gain de performance.
C'est un peu difficile à trouver
exec
fonction disponible jusqu'à ce que, à moins que la vérification de toutes les possibilités1.
function_exist('exec')
2.Numérisation par le biais de
ini_get('disabled_functions)
3.La vérification de
safe_mode
activéCette fonction ne jamais lance des avertissements à moins que
ini_get
la fonction n'est pas désactivée.Exemple:
C'est moches, les code que j'ai fait pour détecter si une fonction est activée ou non.
Je suis en supposant que vous exécutez sur un serveur linux.
Vous pu tester la fonction exec en exécutant le script php suivant:
Ce sera le retour de la commande whoami.
Si une erreur se produit, c'est parce que la fonction exec ne pourrait pas fonctionner.