Page 1 sur 1

problème php exec sur mutualisé 1&1

Posté : 12 mai 2009, 12:57
par flashy38
Bonjour,

Je viens de prendre chez 1&1 un hébergement mutualisé "Pack Perso Confort" et je rencontre un problème avec la commande php exec…

Voici les scripts de test que j’essaye de faire fonctionner :

Script "test.php" :
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

exec("php /kunden/homepages/6/xxxxxxxxxx/htdocs/test/write.php > /dev/null &", $output, $error);

echo "Output :<pre>";
print_r($output);
echo "</pre>";

echo "Error : <pre>";
print_r($error);
echo "</pre>";

echo "ceci est un test" ;
Script "write.php" :
<?php
$f=fopen("/kunden/homepages/6/xxxxxxxxxx/htdocs/test/res.txt",w);
fwrite($f,"resultat du test");
fclose($f);
chmod("/kunden/homepages/6/xxxxxxxxxx/htdocs/test/res.txt",0777);
?>
Quand j’execute le script "test.php", voici ce que mon navigateur me retourne :
Output :
Array
(
)

Error :
0

ceci est un test
Par contre, le fichier "res.txt" qui aurait dû être créé par le script "write.php" n’est pas créé !!


En lançant directement le script "write.php", il n’y a aucun problème puisque le fichier "res.txt" est bien créé…


Petites précisions : le chmod du dossier "test" où se trouvent les deux scripts est bien à 777 et, dans les deux scripts, les "xxxxxxxxxx" dans les chemins sont bien ceux qui correspondent à mon hébergement.


J’ai contacté le support 1&1 et ils m’ont confirmé que la commande exec était bien activé sur le type d’hébergement que j’ai.
De plus, ils m’ont également confirmé que le chemin à mettre pour l’interpréteur php était bien juste "php" dans la première partie de la commande exec. J’en avais déjà d’ailleurs essayer tout un tas (/usr/bin/php notamment).

Bref, j’en perd mon latin !!! D’autant plus que la réponse du support a été "il faut vérifier votre script, je ne pas vous en dire plus puisque les chemins sont les bons" (bref, du vrai support !!)

Merci d’avance de votre aide

Posté : 13 mai 2009, 00:49
par Nagol
pourquoi faire un exec alors que tu pourrais faire un include?

Posté : 13 mai 2009, 07:52
par thehawk
Bonjour,


De plus , la fonction exec est a mon avis desactivé , vu que tu es sur du mutualisé.

Bye Hawk

Posté : 13 mai 2009, 08:43
par flashy38
pourquoi faire un exec alors que tu pourrais faire un include?
Il ne s'agit là que de scripts d'exemple !!

En réalité, il s'agit de lancer plusieurs scripts d'upload de fichiers en fond de tâche.
Ainsi, les uploads qui peuvent prendre pas mal de temps (quelques minutes) tournent en fond et ne bloquent pas l'execution de la suite du script principal.

De plus , la fonction exec est a mon avis desactivé , vu que tu es sur du mutualisé.


Comme je le disais, le support m'a confirmé que la fonction exec était bien disponible.
De plus, je n'ai rien d'inscrit dans la partie "disabled functions" du php.ini (le safe mode est bien désactivé également)

J'ai parfaitement accès à la fonction exec sur l'hébergeur chez qui j'étais avant et c'était également un mutualisé.
Je suis partie pour des questions de prix (entre autre !) mais je m'en mord les doigts !

Posté : 13 mai 2009, 08:53
par thehawk
De plus , la fonction exec est a mon avis desactivé , vu que tu es sur du mutualisé.


Comme je le disais, le support m'a confirmé que la fonction exec était bien disponible.
De plus, je n'ai rien d'inscrit dans la partie "disabled functions" du php.ini (le safe mode est bien désactivé également)

J'ai parfaitement accès à la fonction exec sur l'hébergeur chez qui j'étais avant et c'était également un mutualisé.
Je suis partie pour des questions de prix (entre autre !) mais je m'en mord les doigts !
Autant pour moi :oops:

Posté : 13 mai 2009, 09:08
par sadeq
Essaye avec popen() ou proc_open() pour interagir avec le shell du système en tant que processus.

Re: problème php exec sur mutualisé 1&1

Posté : 23 janv. 2011, 23:29
par Rémi
La réponse est simple, chez 1and1 ils sont encore sous PHP 5.2.17.

Re: problème php exec sur mutualisé 1&1

Posté : 24 janv. 2011, 09:56
par moogli
La réponse est simple, chez 1and1 ils sont encore sous PHP 5.2.17.
quel rapport ?

d'ailleurs au vu du script il n'utilise pas php5 mais php4 .... et oui chez 1and1 il faut indiquer sur le nom de fichier la version (.php => php4, php5 , .php6 ...).

sinon il mettre des ' autour du w dans : open("/kunden/homepages/6/xxxxxxxxxx/htdocs/test/res.txt",w);

après j'ai reproduit le pb mais pas encore trouvé de solution :)


@+

Re: problème php exec sur mutualisé 1&1

Posté : 24 janv. 2011, 17:02
par Mazarini
Bonjour,

Quelques remarques sur la commande exec("php /kunden/homepages/6/xxxxxxxxxx/htdocs/test/write.php > /dev/null &", $output, $error);

- le "> /dev/null fait que la sortie standard $output sera toujours vide
- le "&" en fin de commande fait que le script te rendra la main avant la fin de write PHP
- la fin du script appelant interrompt le script appelé (enfin je crois)

Mais j'avoue ne pas être pointu sur ce genre de chose.