exec() - pg_restore.exe

Petit nouveau ! | 2 Messages

10 juil. 2013, 09:39

Bonjour.

Je vous explique le souci, je souhaite exécuter un pg_restore sous Windows via la commande exec() de PHP.

Je sais qu'il s'agit d'un problème de droit, je ne sais pas si c'est Windows ou PostGres qui pose problème (via le pg_hba.conf ?).

En effet, si j'exécute la commande directement via l'invite de commande cela fonctionne, mais pas par un appel en PHP (pareil si je passe par un intermédiaire en .bat).

Des idées ?

PS : j'avais réussi à régler le problème pour un pg_dump.exe en passant à TRUST dans le pg_hba.conf, mais cela ne change rien ici.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 juil. 2013, 22:01

salut,

est ce qu'il y a un message d'erreur ?
sans cela non code on ne peux pas t'aider.

quel est la version de l'os (2k serveur ou pas, 2k8 serveur etc etc).


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

16 juil. 2013, 17:04

Pardon, je n'avais vue pas ta réponse.

Je n'ai aucun message d'erreur, juste le processus pg_restore.exe dans le gestionnaire des tâches qui tourne au minimum et jusqu'au max_execution_time de PHP.
Alors qu'en l'exécutant dans directement dans l'invite de commande ou bien par un .bat il utilise des ressources et s'exécute en quelques secondes.

C'est donc une question de droits, mais je ne sais pas où regarder.

Sinon je suis sur un Apache 2.2 et un PHP 5.3.

Code : Tout sélectionner

$cmd="\"C:\\Program Files\\pgAdmin III\\1.16\\pg_restore.exe\" --create -d postgres --format=c --no-owner --ignore-version --verbose --host=localhost --port=5432 -U ****** ******.backup"; exec($cmd);
Cdt.