web-dev-qa-db-fra.com

comment activer Shell_exec et exec sur php?

(Il est fait mention de cela en ligne, mais aucune des solutions n'a fonctionné.) Je souhaite pouvoir utiliser Shell_exec et exec à partir d'un script PHP.

Signification, utiliser:

<? exec("echo hello world"); ?> 

ou

<? Shell_exec("echo hello world"); ?>

Selon un lien que j'ai trouvé en ligne ( http://forums.cpanel.net/f5/enable-Shell_exec-one-user-109601.html ), une façon de le faire consiste à ajouter sous VirtualHost les directives:

php_admin_value suhosin.executor.func.blacklist = “Shell_exec”

mais quand j'ai regardé le fichier de configuration, essayant de redémarrer le serveur web, j'ai eu:

28/07/14 17:18:26:    Syntax error on line 1 of /etc/httpd/conf.d/serv1.conf:
28/07/14 17:18:26:    php_admin_value takes two arguments, PHP Value Modifier (Admin)

et le serveur n'est pas redémarré.

Des idées comment activer exec et Shell_exec? Je ne peux pas retracer l'origine de cette erreur.

EDIT: Je ne suis pas la racine sur la machine. Je n'ai pas pu trouver de fichier php.ini, mais il existe un fichier /etc/httpd/conf.d/php.conf et il n'a pas de disable_functions.

C'est ici:

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
4
kloop

Si vous n'êtes pas la racine de la machine et que la fonction exec() est désactivée, vous ne pouvez pas l'activer par vous-même.

Voir http://php.net/manual/en/ini.core.php#ini.disable-functions

disable_functions string

Cette directive vous permet de désactiver certaines fonctions pour des raisons de sécurité. Il prend une liste de noms de fonctions séparés par des virgules. disable_functions n'est pas affecté par le mode sans échec.

Seules les fonctions internes peuvent être désactivées à l'aide de cette directive. Les fonctions définies par l'utilisateur ne sont pas affectées.

Cette directive doit être définie dans php.ini Par exemple, vous ne pouvez pas définir cela dans httpd.conf.

9
Adam

Vous devez désactiver le mode sans échec dans PHP en naviguant dans \Apache2\bin (pas un dossier) et en redémarrant le serveur.

Vérifiez ici et ici .

1
Avinash Babu

Puisque php_admin_value prend deux arguments et n’a pas besoin du signe =, utilisez

php_admin_value suhosin.executor.func.blacklist "Shell_exec"

OU pour bloquer l'utilisation de plusieurs fonctions php

php_admin_value suhosin.executor.func.blacklist "Shell_exec, opendir, file_get_contents, phpinfo"
0
Peter Darmis

retirer de fonction de

disable_functions="" 

dans votre fichier php.ini

ou si vous avez Suhosin, vérifiez votre réglage dans le fichier de configuration Suhosin sous suhosin.executor.func.blacklist

0