Page 1 sur 1

générer un zip auto extractible

Posté : 05 avr. 2008, 13:32
par rebaj
Bonjour,

J'ai trouvé quelques librairies php pour générer un fichier zip, mais malheureusement pas en mode auto-extractible avec extension .exe.

Quelqu'un connaitrait une librairie capable de faire ceci?

merci bcp!

Posté : 05 avr. 2008, 17:05
par @rthur
Bonjour,

Essaye 7-zip en ligne de commande avec les fonctions PHP system() ou exec():
http://www.7-zip.org/

Posté : 05 avr. 2008, 20:28
par rebaj
Salut,

je comprend pas très bien : ce soft a l'air d'etre un executable, comment je peux m'en servir sur un serveur via un script php et y ajouter des fichiers à la volée?

a+

Posté : 06 avr. 2008, 00:15
par Hywan
Hey,

regarde déjà comment fonctionne 7z en local. Regarde l'aide via 7z --help, tu verras, c'est très intuitif. Un exemple rapide d'utilisation en ligne de commande :

Code : Tout sélectionner

bash% ./7za a -mx9 sortie.7z source/
Tu peux lancer cette commande via les fonctions exec() etc, suggérées par @rthur :). Va voir la documentation de ces fonctions sur le manuel de PHP.

Posté : 07 avr. 2008, 14:49
par Invité
Salut les gars,

Merci beaucoup pour l'info 7-zip, c'est vraiment super ce soft.

Donc j'ai bien étudié les lignes de commandes, et j'arrive à peu près a faire ce que je veux en local via mon script sous easyphp.

par contre lorsque je met tout ca sur mon serveur, la fonction exec (ou system ou shell_exec) ne fonctionne pas du tout.

J'ai vérifié dans php.ini, le safemode est pourtant sur off, y a t'il un autre parametre qui pourrait empecher l'execution?

Merci!

Posté : 07 avr. 2008, 15:09
par Hywan
Alors ton hébergeur ne tolère pas les accès au système via ces commandes. Tu as quel type d'hébergement et avec quelle offre ?

Au passage, tu noteras que la compression 7-zip est une des plus polyvalentes et des plus performantes.

Posté : 07 avr. 2008, 15:21
par @rthur
Salut les gars,

Merci beaucoup pour l'info 7-zip, c'est vraiment super ce soft.

Donc j'ai bien étudié les lignes de commandes, et j'arrive à peu près a faire ce que je veux en local via mon script sous easyphp.

par contre lorsque je met tout ca sur mon serveur, la fonction exec (ou system ou shell_exec) ne fonctionne pas du tout.

J'ai vérifié dans php.ini, le safemode est pourtant sur off, y a t'il un autre parametre qui pourrait empecher l'execution?

Merci!
Regarde du côté des directives disabled_functions dans ton phpinfo, si tu vois exec ou system c'est rappé
Si tu ne vois rien, demande à ton hébergeur ;)

Posté : 07 avr. 2008, 15:26
par rebaj
Salut,

J'ai testé sur un hébergement mutualisé chez 1&1 et sur un serveur dédié chez Amen, c'est la même chose: en local lorsque je fait system("ma commande"); le browser m'inscrit le resultat texte dans la page comme dans l'invite de commande.

Or en ligne, rien ne se passe, la page reste blanche...

++

Posté : 07 avr. 2008, 16:51
par @rthur
Sur ton serveur dédié, regarde dans les log Apache et tu verras le message d'erreur pour pouvoir le corriger ;)

Posté : 07 avr. 2008, 21:01
par rebaj
Salut,
Regarde du côté des directives disabled_functions dans ton phpinfo
rien n'est indiqué dans ce champ donc c'est ok.

Rien trouvé de spécial dans les logs.

Quand je me connecte en SSH, je lance une console, me place dans le répertoire de 7zip et là la commande "7z" renvoie une erreur 127 : command not found.

C'est bizarre non? ça devrait pourtant fonctionner, la je passe même pas par php...

si vous voyez plus clair que moi, merci!

Posté : 07 avr. 2008, 21:32
par savageman
Vérifie le chmod : il faut les droits d'éxécution sur le fichier.

Posté : 07 avr. 2008, 22:09
par Invité
Salut savageman,

Bien vu les doirt en exécution n'y étaient pas, alors j'ai passé le fichier en 755, mais ça me donne toujours "command not found"

la je vois vraiment pas ou est le souci... je suis pourtant bien dans le bon dossier et ni "7z" ni "7z.exe" ne marchent.

Posté : 07 avr. 2008, 23:38
par Hywan
Et en 777 ? Est-ce que 7z est installé en distant ? Sinon, le binaire est placé où ? Ton fichier est où par rapport à ce binaire ?

Posté : 08 avr. 2008, 10:43
par Invité
Salut Hywan

Oui même en 777.

Ca veut dire quoi installé en distant? J'ai jamais fait ce genre d'operation, c'est la premiere fois que j'utilise un programme sur un serveur.

j'ai juste copier les fichiers sur le serveur et testé la commande depuis la console dans le même répertoire que le prog.

Y'a autre chose à faire?

Merci.

Posté : 09 avr. 2008, 18:48
par rebaj
Salut,

J'ai finalement trouvé en tâtonnant: il fallait donner les droits au dossier en exécution et écriture, puis lancer la commande avec ./ devant :

Code : Tout sélectionner

./7za
Merci pour votre aide!