[PHP] exec()
Résolu
jsaispas
Messages postés
118
Date d'inscription
Statut
Membre
Dernière intervention
-
jsaispas Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
jsaispas Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
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....
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:
- [PHP] exec()
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Alert php - Forum PHP
7 réponses
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é !)
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é !)
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
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`;
?>
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`;
?>
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?
genre setver.exe pour voir si même ça ça ne marche pas ?
Sinon il y effectivement la solution de passer par des modules
https://www.php.net/zip
mais est ce compatible avec 7zip ?
A tester.
https://www.php.net/zip
mais est ce compatible avec 7zip ?
A tester.