-
20/10/2010 - 00h00
Transformer du php en executable
Salut,
Est ce que vous avez essayé ?
"Le monde contient bien assez pour les besoins de chacun, mais pas assez pour la cupidité de tous." -
20/10/2010 - 08h11 Faith
Re : Transformer du php en executable
A la base, c'est pas vraiment fait pour... Il parait qu'il y a des techniques pour le faire, mais c'est rarement expliqué clairement.
Juste deux questions:
- dans quel but veux tu créer un exécutable ?
- sais-tu qu'il suffit de taper "php nondetonscript.php" pour l'exécuter ?
-
20/10/2010 - 10h44
Re : Transformer du php en executable
 Envoyé par Faith - sais-tu qu'il suffit de taper "php nondetonscript.php" pour l'exécuter ? Non il suffit pas ... Car si tu veux faire tourner ton script en local il faut qu'un serveur soit installer sur la machine, c'est ce que je voudrais éviter, pour rendre portable mon script sous WIN et Linux...
"Le monde contient bien assez pour les besoins de chacun, mais pas assez pour la cupidité de tous." -
20/10/2010 - 12h51 Faith
Re : Transformer du php en executable
 Envoyé par Rhedae il faut qu'un serveur soit installer sur la machine Non. Je viens de faire le test.
Il suffit que php soit présent (même pas forcément installé: si tu récupères le zip, c'est suffisant)
pour rendre portable mon script sous WIN et Linux...
Dès l'instant où tu compiles un truc, il devient non-portable.
Quelque soit le code, pour qu'il reste portable, il faut qu'il y ait sur la machine un programme capable de le traduire (c'est valable pour tout du php au Java en passant par le HTML...)
-
20/11/2010 - 05h57
Re : Transformer du php en executable
 Envoyé par faith Non. Je viens de faire le test.
Il suffit que php soit présent (même pas forcément installé: si tu récupères le zip, c'est suffisant) C'est n'importe quoi ....
"Le monde contient bien assez pour les besoins de chacun, mais pas assez pour la cupidité de tous." -
20/11/2010 - 07h53 Faith
Re : Transformer du php en executable
 Envoyé par Rhedae C'est n'importe quoi .... Attendre un mois pour répondre de cette façon 
En attendant, ça marche, si tu n'y arrives pas, tu en es seul responsable.
-
20/11/2010 - 08h46 ProgVal
Re : Transformer du php en executable
Bonjour,
Il me semble que HipHop fonctionne bien (je n'ai jamais testé) pour convertir du PHP en C++. Et le C++ est, lui, compilable.
Cordialement,
ProgVal
-
20/11/2010 - 09h23 Faith
Re : Transformer du php en executable
En l'occurrence, le but originel étant de rendre son code portable (alors qu'il l'est déjà...), je prévois une petite désillusion 
Mais merci pour l'info, je n'avais pas entendu parler de cette curiosité venant de... Facebook !
Dernière modification par Philou67 ; 17/12/2010 à 10h27.
Motif: Citation inutile
-
20/11/2010 - 15h01
Re : Transformer du php en executable
@Faith,
Je te comprend pas ... PHP à besoin d'un interpretateur ( Apache) , et Apache à besoin que tu lui signifie un chemin root pour executer les programmes coté serveur, sans cela je vois mal comment un script peut etre executer ... A mon avis c'est pas du PHP que tu executes , c'est du html !
Le seul moyen de le rendre portable est de le compiler avec son interpretateur ... ou utiliser un moyen de le transcrire dans un autre language, ce qui me parrait à priori plus optimal .
Je campe sur ma position 
-------------------------------
@ProgVal
Merci c'est exactement ce que je cherchais.
"Le monde contient bien assez pour les besoins de chacun, mais pas assez pour la cupidité de tous." -
20/11/2010 - 15h48 Faith
Re : Transformer du php en executable
 Envoyé par Rhedae PHP à besoin d'un interpretateur Tu confonds tout.
Apache est un serveur Web.
Pour exécuter un script php, il utilise une bibliothèque spécifique php
sans cela je vois mal comment un script peut etre executer ... A mon avis c'est pas du PHP que tu executes , c'est du html !
J'exécute du HTML ? amusant... Sais-tu de quoi tu parles ?
Le seul moyen de le rendre portable est de le compiler avec son interpretateur
Un programme compilé en C++ ne sera pas portable. C'est pas pour rien que des gens se sont cassé les pieds à faire des langages compilés portables comme le Java (et encore son degré de portabilité est variable) J'espère alors que l'informatique est juste un hobby
Merci c'est exactement ce que je cherchais.
Et pourtant ton code ne sera pas portable...
-
20/11/2010 - 16h11 bzh_nicolas
Re : Transformer du php en executable
 Envoyé par Rhedae
Le seul moyen de le rendre portable est de le compiler avec son interpretateur ... ou utiliser un moyen de le transcrire dans un autre language, ce qui me parrait à priori plus optimal . On ne compile pas du PHP c'est un langage de script. Il existe le zend engine qui va le compiler en byte code pour une machine virtuelle.
Maintenant, en effet tu peux utiliser hip hop pour le transforme en C++ et le compiler. Mais il ne sera absolument pas portable. A moins de le compiler pour chaque système d'exploitation sur lesquels tu prévoit de l'éxécuter.
-
21/11/2010 - 10h27 ProgVal
Re : Transformer du php en executable
 Envoyé par bzh_nicolas L'un n'empêche pas l'autre. Par exemple, on peut compiler du Python, qui est un langage de script (même si la plupart du temps, on se content de le byte-compiler).
Citons par exemple Pypy, qui est un interpréteur Python en Python (et donc compilable, sinon, ça ne servirait pas à grand chose ^^)
-
17/12/2010 - 00h42
Re : Transformer du php en executable
 Envoyé par faith Tu confonds tout.
Apache est un serveur Web.
Pour exécuter un script php, il utilise une bibliothèque spécifique php Bon je reviens sur cette discution ... un peu tardivement ... Tu te trompes, pour ce qui est de la spécificité de Apache avec pHP , car Apache fonctionne aussi avec Perl par exemple et d'autres langage ... Et dans un certain sens je sais pas trop si il est abusif de parler d'interpretateur avec Apache ... Enfin, de toute facon, tout cela me parrait tatillon ... Faudrait expliciter plus avant la difference entre interpretateur et serveur : ca ne me parrait pas ininteressant , et si quelqu'un pouvait exposer clairement ce qu'est un interprétateur ... merci d'avance .
"Le monde contient bien assez pour les besoins de chacun, mais pas assez pour la cupidité de tous." -
17/12/2010 - 02h28 Xoxopixo
Re : Transformer du php en executable
Bonjour,
Faire tourner du PHP comme ça sur du windows ?!
Le monde avance vite de nos jours.
Quoique je ne suis pas forcement à jour de tout, comment savoir ce qu'on ne sais pas...
D'apres mes souvenirs d'il y a deux ans environ, à l'epoque ça se passait comme ça:
Si tu ouvre un script avec ton browser fetiche, il verra un beau fichier texte.
Donc si tu voulais l'editer, autant l'ouvrir avec un editeur approprié.
Apres, je pense que la confusion vient du fait que sur la machine cliente -je dis client mais ca peut être "en local " sur le même PC que le serveur - qui "ouvre" du php, la reponse du serveur, sur le serveur (le serveur appache hebergé par l'OS windows par exemple), ce sera le resultat de l'execution du script php. Donc effectivement un beau fichier html....ou pas.
Ou pas, car rien n'oblige un script php de faire du echo "qqqhose en html qui va apparaitre dans le browser"
le php est en soi un langage (de script donc non compilé), tu peut faire des calculs, lui demander d'executer des choses etc.
php n'est pas forcement destiné à fabriquer du HTML pour un browser (ledit browser etant passif, ce qui est son avantage car il ne poura pas faire de degat sur le client en lisant une page web (je tempere car maintenant ils permettent l'execution d'active x ou de scripts java, quelle avancée majeur... ))
Et puis d'ailleur tu peut prendre du python aussi à la pace du PHP.
A quoi il sert le PhpMyAdmin ? C'est le process qui lit le script et l'execute. Ce process est executé coté serveur comme on dit.
C'est appache qui l'heberge. Car appache sait faire tourner plein de process "en même temps",c'est son rôle. De plus il est super stable, rien à dire. C'est lui qui s'octroie les ressources de l'OS, (memoire, temps processeur..).
Un des process "invisible" - ce qui cree la confusion - c'est celui qui va recevoir les requetes HTTP clientes (le get "donne moi la page machin, (donc le client doit lui fournir le nom de la page)) je l'appelerait le connecteur HTTP.
Et la encore Appache excelle à traiter les multiples connecteurs HTTP qu'il garde bien au chaud pour pouvoir servir les prochaines requetes clientes.
C'est pourquoi il faut à un moment ou a un autre dire à Appache que les requetes HTTP GET ou PUT du client (celle qui dit, donne moi la page machin) devront donner lieu à l'execution d'un processus PHP (celui qui decode le script stoqué sur le serveur, la fameuse page machin demandée par le client). Apparement l'appariement est souvent fourni clef en main aves les solutions mySql/php.
Le process PHP est identifié par une numero de session, le fameux SID autogénéré et unique sur le serveur.
Ce SID est tres long et autorise une securisation car bien malin celui qui le trouvera pour se faire passer pour un client qui se serait authentifie une premiere fois.(à moins de sniffer le reseau)
La session PHP peut être permanente, dans ce cas le numero ne bouge pas. Ce numero tu le trouve dans les variables PHP, globales il me semble, car un processus PHP possede tout un tas des variables, les $qqchose, interrogables par le script de la session, l'adresse IP du client qui l'execute, son nom par exemple.
J'oubliait justement la base de données mySQL, independante de Appache. Elle est accessible par le PHP (coté serveur evidement)..si on lui a donné les droits.
Donc le PHP est executé sur le serveur, cree un script .HTML dans le cas general et renvoi au client ce fichier texte par le connecteur HTTP.
Le client ouvre le fichier HTML avec son browser fetiche et il est content 
Le browser fetiche doit evidement etre capable de generer une requete HTTP vers le serveur. Ce qu'ils savent tous faire en general, mais ce n'est pas sa seule fonction.
Une solution alternative, sans browser, c'est de creer une requete HTTP par programmation. Delphi possede ce genre de composant par exemple. ou SOAP mais je connais pas. Il suffit de se renseigner un peu sur le protocole HTTP pour comprendre ce qu'il peut faire (il y en a plusieurs versions, à canal unique ou multiple)
J'espere ne pas avoir dit trop de betises, ca fait un bout de temps que je ne me suis pas amusé avec.
Pour ce qui est de compiler du php en executable.
Ca ne t'afranchira pas du fait de devoir gerer un connecteur HTTP par executable.
Alors si tu penses que c'est windows qui sera en mesure ensuite de gerer les n executables avec ses n connecteurs HTTP (c'est du reseau le HTTP) eh bien bonne chance   
C'est pas son fort la gestion des connections reseaux multiples.
Autant laisser Appache gerer tout ça. L'indien au moins on sait qu'il va y arriver 
Apres si tu as 1 client allez soyons pas vache avec la fenetre, disons 5 avec 1 serveur, c'est jouable. Mais c'est de l'experimental à fond, tu auras ete averti. -
17/12/2010 - 09h00 bzh_nicolas
Re : Transformer du php en executable
 Envoyé par Rhedae Bon je reviens sur cette discution ... un peu tardivement ... Tu te trompes, pour ce qui est de la spécificité de Apache avec pHP , car Apache fonctionne aussi avec Perl par exemple et d'autres langage ... Et dans un certain sens je sais pas trop si il est abusif de parler d'interpretateur avec Apache ... Enfin, de toute facon, tout cela me parrait tatillon ... Faudrait expliciter plus avant la difference entre interpretateur et serveur : ca ne me parrait pas ininteressant , et si quelqu'un pouvait exposer clairement ce qu'est un interprétateur ... merci d'avance . Je crois que tu fais pas mal de confusions :
Apache est un serveur HTTP : il va s'occuper de créer les requêtes respectant la norme HTTP à partir des documents qu'il a disposition et seulement ça. Sur le serveur sont stockées les pages html, les images, etc... mais elles ne sont pas envoyées telle qu'elles, le serveur (apache par exemple) va former la requête HTTP qui va "transporter" l'information.
Pour pouvoir utiliser PHP, il faut un interpréteur qui est installé SUR LE SERVEUR. C'est cet interpréteur qui va exécuter la tâche demandé dans le script, puis le résultat sera envoyé par le serveur (toujours sous forme d'une requête HTTP) au client.
Un serveur est totalement incapable (avec une configuration de base) d'exécuter le moindre script, pour t'en convaincre, il te suffit d'installer un apache de base (sans le module PHP ou autre) et d'essayer d'ouvrir, avec ton navigateur, une page contenant du code PHP. Si tu veux des infos supplémentaire, tu peux faire une recherche sur le terme "LAMP" (Linux, Apache, MySql, Php) qui est une architecture logiciel souvent utilisé pour les serveurs web car gratuite et (relativement) fiable .
| | |