Page 1 sur 1

Problème shell_exec() / Safe mode

Posté : 12 nov. 2008, 13:22
par Bisvan
Bonjour,

Problème : Warning: shell_exec() lorsque j'éxécute la commande
echo shell_exec( "/var/www/vhosts/XXXX.com/cgi-bin/modulev2.cgi $PBX" );
Serveur : Apache avec PHP5
Php.ini : safe_mode=on

J'installe de temps à autres des modules de paiement. Ces modules sont exécutés sur des domaines hébergés sur un système CENTHOS géré par PLESK.
J'ai donc pour chaque domaine un fichier de config apache propre : httpd.include
J'ai essayé de mettre un chemin dans safe_mode_exec_dir afin d'autoriser à exécuter des scripts avec shell_exec() mais sans succès.

Voici le httpd.include qui pose problème :

Code : Tout sélectionner

<IfModule sapi_apache2.c> php_admin_flag display_errors on php_admin_flag engine on php_admin_flag safe_mode on php_admin_value open_basedir "/var/www/vhosts/XXXXX.com/httpdocs:/tmp" php_admin_flag safe_mode_exec_dir /var/www/vhosts/XXXXX.com/cgi-bin </IfModule> <IfModule mod_php5.c> php_admin_flag display_errors on php_admin_flag engine on php_admin_flag safe_mode on php_admin_value open_basedir "/var/www/vhosts/XXXXX.com/httpdocs:/tmp" php_admin_flag safe_mode_exec_dir /var/www/vhosts/XXXXX.com/cgi-bin </IfModule> Options -Includes +ExecCGI </Directory> <Directory /var/www/vhosts/king-g

J'ai cherché sur google et sur le forum mais je ne trouve pas de solution à ce problème récurent (en général je met le virtualhost en safe_mode=off pour régler le problème :oops: )

Quelqu'un pourrait il m'aider ?

Merci bcp

Posté : 12 nov. 2008, 14:19
par Sékiltoyai
Tu peux nous donner le message d'erreur exact déjà ? …

Posté : 12 nov. 2008, 15:48
par Bisvan
Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /var/www/vhosts/XXXX.com/httpdocs/cmde/test.php on line 84

Posté : 12 nov. 2008, 16:29
par Sékiltoyai
RTFM :wink:

http://fr.php.net/manual/fr/function.shell-exec.php
Note: Cette fonction est désactivée par le safe-mode
Tu as plein de fonctions pour le remplacer :
http://fr.php.net/manual/fr/ref.exec.php

Posté : 12 nov. 2008, 19:15
par Bisvan
Merci pour ta réponse.

En fait j'ai essayé de remplacer par exec() mais il ne se passe rien (pas de code d'erreur).
Juste une page blanche.

Avant j'avais en safe_mode OFF (cela fonctionnait):
echo shell_exec( "/var/www/vhosts/XXXX.fr/cgi-bin/modulev2.cgi $PBX" );
Maintenant en essayant avec safe_mode ON:
echo exec('http://www.XXXXXX.fr/cgi-bin/modulev2.cgi', $PBX);
(pour info le script se lance bien avec cette adresse : http://www.XXXXXX.fr/cgi-bin/modulev2.cgi)

Une idée pour m'aider ?