Page 1 sur 1

exec() - pg_restore.exe

Posté : 10 juil. 2013, 09:39
par didiblo
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.

Re: exec() - pg_restore.exe

Posté : 10 juil. 2013, 22:01
par moogli
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).


@+

Re: exec() - pg_restore.exe

Posté : 16 juil. 2013, 17:04
par didiblo
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.