Ich möchte eine ziemlich einfache Aufgabe automatisieren. Dafür habe ich ein kleines PHP-Skript geschrieben, das ich von der Kommandozeile aus mit PHP-CLI ausführe. Jetzt möchte ich dieses Skript jemandem übergeben, aber ich möchte nicht:
- den Quellcode verschenken
- Bitten Sie ihn, PHP auf dem System zu installieren
Gibt es eine Möglichkeit, eine .exe-Version des PHP-Skripts zu erstellen. Ich mache mir wirklich keine großen Sorgen um die Dekompilierung; Ich mache mir mehr Sorgen darüber, Leute zu bitten, PHP zu installieren und zu konfigurieren.
Pfirsichkuchen
http://www.peachpie.io
https://github.com/iolevel/peachpie
Peachpie ist ein PHP 7-Compiler, der auf Roslyn von Microsoft basiert und auf dem beliebten Phalanger basiert. Es ermöglicht die Ausführung von PHP innerhalb von .NET/.NETCore, indem der PHP-Code in reines MSIL kompiliert wird.
Phalanger
http://v4.php-compiler.net/
http://wiki.php-compiler.net/Phalanger_Wiki
https://github.com/devsense/phalanger
Phalanger ist ein Projekt, das an der Karls-Universität in Prag gestartet und von Microsoft unterstützt wurde. Es kompiliert Quellcode, der in der PHP-Skriptsprache geschrieben ist, in CIL-Bytecode (Common Intermediate Language). Es behandelt den Beginn eines Kompilierungsprozesses, der von der JIT-Compilerkomponente des .NET Framework abgeschlossen wird. Es behandelt weder die Generierung nativen Codes noch die Optimierung. Sein Zweck besteht darin, PHP-Skripte in .NET-Assemblys zu kompilieren, logische Einheiten, die CIL-Code und Metadaten enthalten.
Bambalam
https://github.com/xZero707/Bamcompile/
Bambalam PHP EXE Compiler/Embedder ist ein kostenloses Befehlszeilentool zum Konvertieren von PHP-Anwendungen in eigenständige Windows .exe-Anwendungen. Die erzeugten Exe-Dateien sind völlig eigenständig, es sind keine PHP-DLLs usw. erforderlich. Der PHP-Code wird mit der Turck MMCache Encode-Bibliothek codiert, sodass dies eine perfekte Lösung ist, wenn Sie Ihre Anwendung verteilen und gleichzeitig Ihren Quellcode schützen möchten. Der Konverter eignet sich auch zum Erstellen von .exe-Dateien für PHP-Fensteranwendungen (die beispielsweise mit der WinBinder-Bibliothek erstellt wurden). Es eignet sich auch gut zum Erstellen eigenständiger PHP-Socket-Server/-Clients (unter Verwendung der Erweiterung php_sockets.dll). Es ist NICHT wirklich ein Compiler in dem Sinne, dass es keinen nativen Maschinencode aus PHP-Quellen erzeugt, aber es funktioniert!
ZZEE PHPExe
http://www.zzee.com/phpexe/
ZZEE PHPExe kompiliert PHP, HTML, Javascript, Flash und andere Webdateien in Windows-GUI-Exes. Sie können schnell Windows-GUI-Anwendungen entwickeln, indem Sie das vertraute PHP-Webparadigma verwenden. Sie können den gleichen Code für Online- und Windows-Anwendungen mit wenig oder gar keinen Änderungen verwenden. Es ist ein kommerzielles Produkt.
pc-win
http://wiki.swiftlytilting.com/Phc-win
Die PHP-Erweiterung bcompiler wird verwendet, um PHP-Skriptcode in PHP-Bytecode zu kompilieren. Dieser Bytecode kann wie jede andere PHP-Datei eingebunden werden, solange die bcompiler-Erweiterung geladen ist. Nachdem alle Bytecode-Dateien erstellt wurden, wird ein modifizierter Embeder verwendet, um alle Projektdateien in die Programm-Exe zu packen.
Erfordert
- php5ts.dll
- php_win32std.dll
- php_bcompiler.dll
- php-embed.ini
ExeAusgabe
http://www.exeoutput.com/
Kommerziell
WinBinder
http://winbinder.org/ – nicht länger verfügbar
(Original: https://github.com/stefan-loewe/WinBinder)
(Gabel: https://github.com/wagy/WinBinder)
WinBinder ist eine Open-Source-Erweiterung für PHP, die Skript-Programmiersprache. Es ermöglicht PHP-Programmierern, auf einfache Weise native Windows-Anwendungen zu erstellen und mit minimalem Aufwand schnelle und lohnende Ergebnisse zu erzielen. Selbst kurze Skripte mit ein paar Dutzend Zeilen können dank der Leistungsfähigkeit und Flexibilität von PHP ein nützliches Programm generieren.
PHP Desktop
https://github.com/cztomczak/phpdesktop
PHP Desktop ist ein Open-Source-Projekt, das 2012 von Czarek Tomczak gegründet wurde, um eine Möglichkeit zur Entwicklung nativer Desktop-Anwendungen mit Webtechnologien wie PHP, HTML5, JavaScript und SQLite zu bieten. Dieses Projekt ist mehr als nur ein PHP-zu-EXE-Compiler, es bettet einen Webbrowser (Internet Explorer oder Chrome embedded), einen Mongoose-Webserver und einen PHP-Interpreter ein. Der Entwicklungsworkflow, den Sie gewohnt sind, bleibt derselbe, der Schritt, eine bestehende Website in eine Desktop-Anwendung umzuwandeln, besteht im Wesentlichen darin, sie in das Verzeichnis „www/“ zu kopieren. Die Verwendung der SQLite-Datenbank ist optional, Sie können die mysql/postgresql-Datenbank in das Installationsprogramm der Anwendung einbetten.
PHP Nightrain
https://github.com/kjellberg/nightrain
Mit PHP Nightrain können Sie HTML-, CSS-, JavaScript- und PHP-Webanwendungen als native Desktop-Anwendung auf Windows-, Mac- und Linux-Betriebssystemen bereitstellen und ausführen. Gängige PHP Frameworks (zB CakePHP, Laravel, Drupal, etc…) werden gut unterstützt!
PHC-Win “Gabel”
https://github.com/RDashINC/phc-win
Eine mehr oder weniger gegabelte Version von phc-win, die die gleichen Techniken wie phc-win verwendet, aber fast alle modernen PHP-Versionen unterstützt. (5.3, 5.4, 5.5, 5.6 usw.) Es kann auch Enigma VB verwenden, um die php5ts.dll mit Ihrer exe zu kombinieren, sowie UPX komprimieren. Schließlich hat es win32std und winbinder statisch in PHP kompiliert.
BEARBEITEN
Eine weitere Option ist die Verwendung
http://www.appcelerator.com/products/titanium-cross-platform-application-development/
Ein Online-Compiler, der ausführbare Dateien für eine Reihe verschiedener Plattformen und aus einer Reihe verschiedener Sprachen, einschließlich PHP, erstellen kann
TideSDK
http://www.tidesdk.org/
TideSDK ist eigentlich das umbenannte Titanium Desktop-Projekt. Titanium konzentrierte sich weiterhin auf Mobilgeräte und gab die Desktop-Version auf, die von einigen Leuten übernommen wurde, die sie als Open Source veröffentlicht und TideSDK getauft haben.
Im Allgemeinen verwendet TideSDK HTML, CSS und JS zum Rendern von Anwendungen, unterstützt jedoch Skriptsprachen wie PHP als Plug-in-Modul sowie andere Skriptsprachen wie Python und Ruby.
Ich hatte Probleme mit den meisten Tools in anderen Antworten, da sie alle sehr veraltet sind.
Wenn Sie eine Lösung brauchen, die “einfach funktioniert”, packen Sie eine Barebone-Version von PHP mit Ihrem Projekt in ein WinRar-SFX-Archiv, stellen Sie es so ein, dass es alles in ein temporäres Verzeichnis extrahiert und ausführt php your_script.php
.
Um ein einfaches Skript auszuführen, sind die einzigen erforderlichen Dateien php.exe
und php5.dll
(oder php5ts.dll
je nach Ausführung).
Um Erweiterungen hinzuzufügen, packen Sie sie zusammen mit einer php.ini-Datei:
[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...
Ich habe die meisten der in der ersten Antwort angegebenen Lösungen ausprobiert, die einzige das hat funktioniert für mich und ist nicht kommerziell ist php-desktop.
Ich lege einfach meine PHP-Dateien in die www/
Ordner, änderte den Namen von .exe
und konnte meine php als exe ausführen !!
Außerdem gibt es eine vollständige Dokumentation, aktuelle Unterstützung, Kompatibilität mit Windows und Linux (und bald Mac) und Optionen können leicht geändert werden.
RapidEXE ist genau für diesen Job:
Es konvertiert ein PHP-Projekt in eine eigenständige EXE-Datei. Ich hatte genug von allen anderen Compilern, probierte sie einen nach dem anderen aus und alle enttäuschten mich auf die eine oder andere Weise. Seien Sie mein Gast, Feedback ist immer willkommen!
Nebenbemerkung: Der Mechanismus dahinter ist dem WinRAR SFX-Ansatz ziemlich ähnlich; Engine extrahieren, Quelle extrahieren, dann ausführen. Es ist einfach schneller und einfacher damit zu arbeiten. Ein-Befehl-Kompilierung, komprimiert, intelligentes Entpacken, automatische Bereinigung, einfache Konfiguration, volle Kontrolle über PHP-Engine und -Version; auch erweiterbar mit minimalem Aufwand.
Viel Spaß beim Entwickeln!
ExeOutput kann auch PHP-Websites in Windows-Anwendungen und -Software umwandeln
Verwandeln Sie PHP-Websites in Windows-Anwendungen und -Software
Mit ExeOutput for PHP erstellte Anwendungen führen PHP-Skripte, PHP-Anwendungen und PHP-Websites nativ aus und erfordern keinen Webserver, Webbrowser oder PHP-Distribution. Sie sind eigenständig und funktionieren auf jedem Computer mit aktuellen Windows-Versionen.
ExeOutput for PHP ist ein leistungsstarker Website-Compiler, der mit allen Elementen funktioniert, die auf modernen Websites zu finden sind: PHP-Skripte, JavaScript, HTML, CSS, XML, PDF-Dateien, Flash, Flash-Videos, Silverlight-Videos, Datenbanken und Bilder. Durch die Kombination dieser Elemente mit der PHP-Laufzeit und den PHP-Erweiterungen erstellt ExeOutput für PHP eine EXE-Datei, die Ihre vollständige Anwendung enthält.
http://www.exeoutput.com/
Meine Erfahrung in dieser Angelegenheit sagt mir, dass die meisten dieser Programme gut mit kleinen Projekten funktionieren.
Aber was ist mit großen Projekten? zB: Zend Framework 2 und ähnliches.
Einige von ihnen benötigen einen Browser, um ausgeführt zu werden, und es ist schwierig, dem Kunden zu sagen: “Bitte tippen Sie http://localhost/
” in der Adressleiste Ihres Browsers !!
Dazu erstelle ich ein einfaches Projekt: PHPPy
Dies ist kein vollständiger Weg zum Erstellen einer eigenständigen ausführbaren Datei zum Ausführen von PHP-Projekten, hilft Ihnen jedoch dabei.
Ich konnte die Python-Datei nicht mit PyInstaller oder Py2exe in eine .exe-Datei kompilieren, ich hoffe, Sie können.
Sie benötigen keine ausführbaren Uniformserver-Dateien.
Das aktuelle PHP Nightrain (4.0.0) ist in Python geschrieben und verwendet die wxPython-Bibliotheken. Bisher hat wxPython gut daran gearbeitet, PHP Nightrain dorthin zu bringen, wo es heute ist, aber um PHP Nightrain auf die nächste Stufe zu bringen, stellen wir ein Geschwisterkind von PHP Nightrain vor, das PHPWebkit!
Es ist ein Update für PHP Nightrain.
https://github.com/entrypass/nightrain-ep
hast du schon von bamcompile (r) gehört?
– SagarPPanchal
13. Mai 2013 um 5:38 Uhr
Benutze Bambalam seit einigen Jahren. Es ist jetzt seit ungefähr einer Ewigkeit ins Stocken geraten – und noch wichtiger, es ist nur mit PHP4.4.4 kompatibel. Solange Sie jedoch keine UTF8-Unterstützung und ähnliches benötigen und mit defektem foreach() und einigen anderen umgehen können, sollte es für Sie funktionieren. Beachten Sie, dass es mit PHP4.4.4 unmöglich ist, beispielsweise mit UTF8-Dateinamen in einem Verzeichnis umzugehen. Denken Sie auch daran, dass Dateien in %TEMP% erstellt werden, die niemals entfernt werden (php[0-F]{2}.tmp), müssen Sie diese bereinigen.
– Egon_Freeman
4. Juni 2017 um 23:18 Uhr
Die Binärdateien von PHP können portabel ausgeführt werden. Sie können den Leuten einfach sagen, dass sie einen ganzen Ordner extrahieren und eine Batch-Datei erstellen sollen, die so etwas wie “php.exe -c php.ini script.php” ausführt.
– FluoreszierendGrün5
6. März 2018 um 11:19 Uhr