(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
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.
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"
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