Convertir un script PHP en un exécutable Windows autonome

Je veux automatiser une tâche assez simple. Pour cela, j'ai écrit un petit script PHP que je lance à partir de la ligne de commande en utilisant PHP-CLI. Maintenant, je veux remettre ce script à quelqu'un mais je ne veux pas:

  • Donnez le code source
  • demandez-lui d'installer PHP sur le système

Est-il un moyen de créer un .version exe du script PHP. Je ne suis vraiment pas très inquiet de la dé-compilation; je suis plus inquiet de demander aux gens d'installer et de configurer PHP.

112
demandé sur Salman A 2012-01-28 20:07:39

8 réponses

Peachpie

Http://www.peachpie.io

Https://github.com/iolevel/peachpie

Peachpie est le compilateur PHP 7 basé sur Roslyn par Microsoft et le dessin de Phalanger populaire. Il permet à PHP d'être exécuté dans le. net/. NETCore en compilant le code PHP à pure MSIL.

Phalanger

Http://v4.php-compiler.net/

Http://wiki.php-compiler.net/Phalanger_Wiki

Https://github.com/devsense/phalanger

Phalanger est un projet qui a été lancé à L'Université Charles de Prague et a été soutenu par Microsoft. Il compile le code source écrit dans le langage de script PHP en code octet cil (Common Intermediate Language). Il gère le début d'un processus de compilation qui est terminé par le composant du compilateur JIT du Framework. net. Il ne traite pas de la génération de code natif ni de l'optimisation. Son but est de compiler des scripts PHP dans des assemblys. net, des unités logiques contenant du code CIL et des méta-données.

Bambalam

Http://www.bambalam.se/bamcompile/

Bambalam PHP exe Compiler / Embedder est un outil de ligne de commande gratuit pour convertir des applications PHP en Windows autonome .applications exe. Les fichiers exe produits sont totalement autonome, pas besoin de DLL php, etc. Le code php est codé à L'aide de la bibliothèque Turck Mmcache Encode, c'est donc une solution parfaite si vous voulez distribuer votre application tout en protégeant votre code source. Le convertisseur est également adapté à la production .fichiers exe pour les applications PHP fenêtrées (créés en utilisant par exemple la bibliothèque WinBinder). C'est également bon pour faire des serveurs/clients PHP socket autonomes (en utilisant les php_sockets.dll d'extension). Ce n'est pas vraiment un compilateur dans le sens où il ne produit pas de code machine natif à partir de sources PHP, mais cela fonctionne!

ZZEE PHPExe

Http://www.zzee.com/phpexe/

ZZEE PHPExe compile PHP, HTML, Javascript, Flash et d'autres fichiers web dans Windows GUI exes. Vous pouvez rapidement développer des applications Windows GUI en utilisant le paradigme web PHP familier. Vous pouvez utiliser le même code pour les applications en ligne et Windows avec peu ou pas de modification. C'est un Commercial produit.

Ssp-win

Http://wiki.swiftlytilting.com/Phc-win

L'extension PHP bcompiler est utilisée pour compiler le code de script PHP en bytecode PHP. Ce bytecode peut être inclus comme n'importe quel fichier php tant que l'extension bcompiler est chargée. Une fois que tous les fichiers de bytecode ont été créés, un Embeder modifié est utilisé pour emballer tous les fichiers de projet dans le programme exe.

Nécessite

  • php5ts.DLL
  • php_win32std.dll
  • php_bcompiler.dll
  • PHP-embed.ini

ExeOutput

Http://www.exeoutput.com/

Commerciales

WinBinder

Http://winbinder.org/

WinBinder est une extension open source de PHP, le langage de programmation de script. Il permet aux programmeurs PHP de créer facilement des applications Windows natives, produisant des résultats rapides et enrichissants avec un minimum d'effort. Même des scripts courts avec quelques dizaines de lignes peuvent générer un programme utile, grâce à la puissance et la flexibilité de PHP.

PHPDesktop

Https://github.com/cztomczak/phpdesktop

PHP Desktop est un projet open source fondé par Czarek Tomczak en 2012 pour fournir un moyen de développer des applications de bureau natives en utilisant des technologies web telles que PHP, HTML5, JavaScript et SQLite. Ce projet est plus qu'un simple compilateur PHP à EXE, il intègre un navigateur web (Internet Explorer ou Chrome embedded), un serveur web Mongoose et un interpréteur PHP. Le flux de travail de développement auquel vous êtes habitué reste le même, l'étape de transformer un site Web existant en une application de bureau est essentiellement une question de le copier dans le répertoire "www/". L'utilisation de la base de données SQLite est facultative, vous pouvez intégrer la base de données mysql/postgresql dans le programme d'installation de l'application.

PHP Nightrain

Http://www.naetech.com/php-nightrain

Utiliser PHP Nightrain vous pourrez déployer et exécuter des applications Web HTML, CSS, JavaScript et PHP en tant qu'application de bureau native sur Windows, Mac et les systèmes D'exploitation Linux. Les Frameworks PHP populaires (par exemple CakePHP, Laravel, Drupal, etc...) sont bien supportés!

Ssp-gagnant "fourche"

Https://github.com/RDashINC/phc-win

Une version plus ou moins fourchue de phc-win, elle utilise les mêmes techniques que phc-win mais supporte presque toutes les versions modernes de PHP. (5.3, 5.4, 5.5, 5.6, etc) il peut également utiliser Enigma VB pour combiner le php5ts.dll avec votre exe, ainsi que UPX le compresser. Enfin, il a win32std et winbinder compilés statiquement en PHP.

Modifier

Une autre option consiste à utiliser

Http://www.appcelerator.com/products/titanium-cross-platform-application-development/

Un compilateur en ligne qui peut construire des exécutables pour un certain nombre de plates-formes différentes, à partir d'un certain nombre de langues différentes, y compris PHP

TideSDK

Http://www.tidesdk.org/

TideSDK est en fait le projet de bureau Titanium renommé. Titanium est resté concentré sur le mobile, et a abandonné la version de bureau, qui a été reprise par certaines personnes qui l'ont open source et l'ont surnommé TideSDK.

Généralement, TideSDK utilise HTML, CSS et JS pour rendre les applications, mais il prend en charge les langages scriptés comme PHP, en tant que module de plug-in, ainsi que d'autres langages de script comme Python et Ruby.

168
répondu Mark Baker 2017-09-10 16:46:01

J'ai essayé la plupart des solutions données dans la 1ère réponse, la seule qui fonctionne et n'était pas commerciale était php-desktop .

J'ai simplement mis mes fichiers php dans le dossier www, chaged le nom de .exe et j'ai pu exécuter mon php en tant qu'exe !!

Il y a aussi une documentation complète, un support à jour et des options peuvent être facilement modifiés.

Malheureusement, la plupart des projets de la 1ère réponse ont été interrompus et il est difficile de trouver le moyen idéal de le faire multi-plateforme...

5
répondu Sébastien Garcia-Roméo 2016-03-17 11:52:57

J'ai eu des problèmes avec la plupart des outils dans d'autres réponses, car ils sont tous très désuet.

Si vous avez besoin d'une solution qui "fonctionne", emballez une version de php avec votre projet dans une archive WinRAR SFX, définissez-la pour extraire tout dans un répertoire temporaire et exécutez php your_script.php.

Pour exécuter un script de base, les seuls fichiers requis sont php.exe et php5.dll (ou php5ts.dll selon version).

Pour ajouter des extensions, emballez-les avec un php.fichier ini:

[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...
4
répondu toster-cx 2015-11-13 00:29:28

Http://winbinder.org/

"WinBinder est une nouvelle extension open source pour PHP, le langage de programmation de script. Il permet aux programmeurs PHP de créer facilement des applications Windows natives."

3
répondu djot 2012-01-28 16:13:58

ExeOutput est également capable de transformer des sites Web PHP en Applications et logiciels Windows

Transformez les sites Web PHP en Applications et logiciels Windows

Les Applications faites avec ExeOutput pour PHP exécutent des scripts PHP, des applications PHP et des sites Web PHP nativement, et ne nécessitent pas de serveur web, de navigateur web ou de distribution PHP. Ils sont autonomes et fonctionnent sur n'importe quel ordinateur avec des versions récentes de Windows.

ExeOutput pour PHP est un compilateur de site web puissant qui fonctionne avec tous les éléments trouvés sur les sites modernes: scripts PHP, JavaScript, HTML, CSS, XML, fichiers PDF, Flash, vidéos Flash, vidéos Silverlight, bases de données et images. En combinant ces éléments avec PHP Runtime et PHP Extensions, ExeOutput pour PHP construit un fichier EXE qui contient votre application complète.

Http://www.exeoutput.com/

2
répondu srinath madusanka 2013-11-29 08:55:18

Mon expérience dans ce domaine me dit, la plupart de ces logiciels fonctionnent bien avec de petits projets .
Mais ce que sur les grands projets? par exemple: Zend Framework 2 et certaines choses comme ça.
Certains d'entre eux ont besoin d'un navigateur pour fonctionner et il est difficile de dire au client "veuillez taper http://localhost/" dans la barre d'adresse de votre navigateur !!

J'ai créer un projet simple pour ce faire : PHPPy

Ce n'est pas un moyen complet pour créer un fichier exécutable autonome pour exécuter des projets php mais vous aide pour ce faire.
Je ne pouvais pas compiler le fichier python avec PyInstaller ou Py2exe to .fichier exe, j'espère que vous pouvez.
Vous n'avez pas besoin de fichiers exécutables uniformserver.

1
répondu Mohamad Rostami 2013-12-27 09:16:10

Le Nightrain PHP actuel (4.0.0) est écrit en Python et il utilise le bibliothèques wxPython. Jusqu'à présent wxPython a bien fonctionné pour obtenir PHP Nightrain où il est aujourd'hui mais afin de pousser PHP Nightrain à son niveau suivant, nous introduisons un frère de PHP Nightrain, le PHPWebkit!

C'est une mise à jour de PHP Nightrain.

Https://github.com/entrypass/nightrain-ep

1
répondu zeddex 2015-11-30 15:02:16

PHPFlexer fera l'affaire si vous emballez vos choses dans un seul fichier. Je sais que je sais, c'est très limité et tout, mais un pas vers le Nirvana.

Je travaille sur un meilleur, il va par le nom RapidExe-il fonctionne de manière transparente avec PHP 7.2 et gère pratiquement n'importe quel nombre de fichiers dans n'importe quelle structure de dossier à l'intérieur. Les versions bêta seront bientôt disponibles, mais je ne veux pas utiliser ce forum pour la publicité ou quoi que ce soit. En outre il est totalement gratuit et sera toujours être.

Mise à JOUR

RapidExe est déjà disponible:

Http://deneskellner.com/sw/rapidexe

1
répondu dkellner 2018-09-15 08:24:36