générer un zip auto extractible

rebaj
Invité n'ayant pas de compte PHPfrance

05 avr. 2008, 13:32

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!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 avr. 2008, 17:05

Bonjour,

Essaye 7-zip en ligne de commande avec les fonctions PHP system() ou exec():
http://www.7-zip.org/
Quand tout le reste a échoué, lisez le mode d'emploi...

rebaj
Invité n'ayant pas de compte PHPfrance

05 avr. 2008, 20:28

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+

ViPHP
ViPHP | 4674 Messages

06 avr. 2008, 00:15

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.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

07 avr. 2008, 14:49

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!

ViPHP
ViPHP | 4674 Messages

07 avr. 2008, 15:09

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.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 avr. 2008, 15:21

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 ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

rebaj
Invité n'ayant pas de compte PHPfrance

07 avr. 2008, 15:26

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...

++

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 avr. 2008, 16:51

Sur ton serveur dédié, regarde dans les log Apache et tu verras le message d'erreur pour pouvoir le corriger ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

rebaj
Invité n'ayant pas de compte PHPfrance

07 avr. 2008, 21:01

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!

Eléphant du PHP | 185 Messages

07 avr. 2008, 21:32

Vérifie le chmod : il faut les droits d'éxécution sur le fichier.

Invité
Invité n'ayant pas de compte PHPfrance

07 avr. 2008, 22:09

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.

ViPHP
ViPHP | 4674 Messages

07 avr. 2008, 23:38

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 ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

08 avr. 2008, 10:43

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.

rebaj
Invité n'ayant pas de compte PHPfrance

09 avr. 2008, 18:48

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!