[PHP] exec()

Résolu/Fermé
jsaispas Messages postés 118 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 24 août 2009 - 12 août 2009 à 12:35
jsaispas Messages postés 118 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 24 août 2009 - 12 août 2009 à 14:55
Bonjour,
je rencontre quelque problème avec la fonction exec();
J'essaye d'extraire le contenu d'un archive zip avec 7z. En local (comme dab) tout marche toujours super bien puis quand je veux passer sur le serveur dédié, ça fait rien, ça retourne pas d'erreur...

j'ai simplifié une page pour tester, j'ai fais un dossier (ou l'utilisateur IIS a full contrôle) dans lequel se trouve :
- 7z.exe
- fichier.zip (contenu un fichier .txt)
- page.php

dans laquelle je fais :

<?php
exec('7z e fichier.zip');
?>

plus simple c'est pas possible et pourtant ça marche pas.

Cependant le truc bien bizarre que j'ai eu, c'est sur ma page plus complexe j'ai réussi une fois à extraire l'archive et depuis ça marche plus alors que j'avais pas touché au code....
A voir également:

7 réponses

jean-charles.gibier Messages postés 34 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 18 août 2009 9
12 août 2009 à 13:52
Dans les propriété IIS du serveur virtuel il faut s'assurer que les autorisations sont accordées pour "les scripts et executables".
Coté php.ini il faut également s'assurer que le moteur n'est pas en mode SAFE
safe_mode = Off

Et bien sûr vérifier éventuellement que la même ligne de commande marche bien quand elle est lancée dans le ROOT directory.

Vérifier également que l'utisateur IIs a bien les droit d'accès aux executables (ou l'utilisateur de la session windows si il y a autentification intégrée)

(mais par la suite attention aux pb de sécurité !)
0
jsaispas Messages postés 118 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 24 août 2009 69
12 août 2009 à 14:12
ba justement pas logique qu'elle ce soit lancé une fois... Ensuite je fais aussi des exec de pdftotxt et antiword sans aucun soucis sur le serveur. Donc c'est assez bizarre
0
jean-charles.gibier Messages postés 34 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 18 août 2009 9
12 août 2009 à 14:20
Les executions sont sensées se faire avec quel utilsateur (utilisateur didié IIS ?)
Qu'est ce que donne l'execution de la page en ligne de commande avec une session de cet utilisateur (si c'est possible) ?

Eventuellement qu'est ce que donne la même instruction système avec des backitcks
par exemple :
<?php
echo `7z e fichier.zip`;
?>
0
jsaispas Messages postés 118 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 24 août 2009 69
12 août 2009 à 14:35
en fait j'ai deja testé avec ' ou " et ` ne marche pas je viens de tester, j'ai aussi fait avec des ",' et tout autour du nom de fichier mais je veux la syntaxe que j'utilise est bonne déjà vu qu'elle marche en local...

j'ai ça en local :
exec("7z e $destination$fichier_zip -o$dossier_zip");
temp/fichier.zip vers temp_zip

le même code qui marche en local et qui fait rien sur le serveur c'est bizarre, souvent c'est un problème de droit mais la je vois pas pourquoi puisque d'autre exe tourne....

Ensuite j'ai aussi testé si 7z avait des dépendances mais apparemment pas parce qu'avec le cmd et mon 7z.exe dans un autre dossier tout seul ça marche niquel.

si qqn connait un autre extracteur qui marche bien avec exec() je veux bien...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jean-charles.gibier Messages postés 34 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 18 août 2009 9
12 août 2009 à 14:47
Vous n'avez pas un petit executable qui produit du texte sur la sortie standard ?
genre setver.exe pour voir si même ça ça ne marche pas ?
0
jean-charles.gibier Messages postés 34 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 18 août 2009 9
12 août 2009 à 14:50
Sinon il y effectivement la solution de passer par des modules
https://www.php.net/zip
mais est ce compatible avec 7zip ?
A tester.
0
jsaispas Messages postés 118 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 24 août 2009 69
12 août 2009 à 14:55
je vais prendre la solution php je crois, y a que ça de vrai, la command exec je la déteste, une fois sur 2 elle marche pas bien, je vais essayer de me trouver un exemple pour extraire, surtout que je récup qu'un seul fichier et je supprime le reste.
0