Chcę zautomatyzować dość proste zadanie. W tym celu napisałem mały skrypt PHP, który uruchamiam z wiersza poleceń za pomocą PHP-CLI. Teraz chcę przekazać komuś ten skrypt, ale nie chcę:
- rozdać kod źródłowy
- poproś go o zainstalowanie PHP w systemie
Czy istnieje sposób na utworzenie wersji .exe skryptu PHP. Naprawdę nie martwię się zbytnio dekompilacją; Bardziej martwię się pytaniem ludzi o zainstalowanie i skonfigurowanie PHP.
php
obfuscation
Salman A
źródło
źródło
Odpowiedzi:
Ciasto brzoskwiniowe
http://www.peachpie.io
https://github.com/iolevel/peachpie
Peachpie to kompilator PHP 7 oparty na Roslyn firmy Microsoft i czerpiący z popularnego Phalanger. Umożliwia wykonywanie PHP w ramach .NET / .NETCore poprzez kompilację kodu PHP do czystego MSIL.
Phalanger
http://v4.php-compiler.net/
http://wiki.php-compiler.net/Phalanger_Wiki
https://github.com/devsense/phalanger
Phalanger to projekt, który rozpoczął się na Uniwersytecie Karola w Pradze i był wspierany przez Microsoft. Kompiluje kod źródłowy napisany w języku skryptowym PHP do kodu bajtowego CIL (Common Intermediate Language). Obsługuje początek procesu kompilacji, który jest zakończony przez komponent kompilatora JIT platformy .NET Framework. Nie dotyczy generowania kodu natywnego ani optymalizacji. Jego celem jest kompilacja skryptów PHP do zestawów .NET, jednostek logicznych zawierających kod CIL i metadane.
Bambalam
https://github.com/xZero707/Bamcompile/
Bambalam PHP EXE Compiler / Embedder to darmowe narzędzie wiersza poleceń do konwersji aplikacji PHP na samodzielne aplikacje Windows .exe. Utworzone pliki exe są całkowicie samodzielne, nie są potrzebne biblioteki dll php itp. Kod php jest kodowany przy użyciu biblioteki Turck MMCache Encode, więc jest to idealne rozwiązanie, jeśli chcesz rozpowszechniać swoją aplikację, jednocześnie chroniąc kod źródłowy. Konwerter nadaje się również do tworzenia plików .exe dla okienkowych aplikacji PHP (utworzonych np. Przy użyciu biblioteki WinBinder). Jest również dobry do tworzenia samodzielnych serwerów / klientów PHP Socket (przy użyciu rozszerzenia php_sockets.dll). NIE jest to kompilator w tym sensie, że nie tworzy natywnego kodu maszynowego ze źródeł PHP, ale działa!
ZZEE PHPExe
http://www.zzee.com/phpexe/
ZZEE PHPExe kompiluje PHP, HTML, Javascript, Flash i inne pliki internetowe do exes GUI systemu Windows. Możesz szybko tworzyć aplikacje Windows GUI, stosując znany paradygmat sieciowy PHP. Możesz użyć tego samego kodu dla aplikacji online i Windows z niewielkimi modyfikacjami lub bez nich. Jest to produkt komercyjny.
phc-win
http://wiki.swiftlytilting.com/Phc-win
Rozszerzenie PHP bcompiler służy do kompilowania kodu skryptu PHP do kodu bajtowego PHP. Ten kod bajtowy można dołączyć tak samo jak każdy plik php, o ile załadowane jest rozszerzenie bcompiler. Po utworzeniu wszystkich plików kodu bajtowego zmodyfikowany Embeder jest używany do spakowania wszystkich plików projektu do programu exe.
Wymaga
ExeOutput
http://www.exeoutput.com/
Reklama w telewizji
WinBinder
http://winbinder.org/
WinBinder jest rozszerzeniem typu open source do PHP, języka programowania skryptowego. Pozwala programistom PHP łatwo tworzyć natywne aplikacje Windows, zapewniając szybkie i satysfakcjonujące wyniki przy minimalnym wysiłku. Nawet krótkie skrypty zawierające kilkadziesiąt wierszy mogą wygenerować przydatny program, dzięki mocy i elastyczności PHP.
PHPDesktop
https://github.com/cztomczak/phpdesktop
PHP Desktop to projekt open source założony przez Czarka Tomczaka w 2012 roku w celu zapewnienia możliwości tworzenia natywnych aplikacji desktopowych z wykorzystaniem technologii internetowych, takich jak PHP, HTML5, JavaScript i SQLite. Ten projekt to coś więcej niż tylko kompilator PHP do EXE, zawiera on przeglądarkę internetową (osadzoną w przeglądarce Internet Explorer lub Chrome), serwer sieciowy Mongoose i interpreter PHP. Proces tworzenia oprogramowania, do którego jesteś przyzwyczajony, pozostaje ten sam, krok przekształcania istniejącej witryny internetowej w aplikację komputerową polega w zasadzie na skopiowaniu jej do katalogu „www /”. Korzystanie z bazy danych SQLite jest opcjonalne, możesz osadzić bazę danych mysql / postgresql w instalatorze aplikacji.
PHP Nightrain
https://github.com/kjellberg/nightrain
Korzystając z PHP Nightrain będziesz mógł wdrażać i uruchamiać aplikacje internetowe HTML, CSS, JavaScript i PHP jako natywną aplikację komputerową w systemach operacyjnych Windows, Mac i Linux. Popularne frameworki PHP (np. CakePHP, Laravel, Drupal, itp…) są dobrze obsługiwane!
phc-win "fork"
https://github.com/RDashINC/phc-win
Mniej lub bardziej rozwidlona wersja phc-win, wykorzystuje te same techniki, co phc-win, ale obsługuje prawie wszystkie współczesne wersje PHP. (5.3, 5.4, 5.5, 5.6 itd.) Może również używać Enigma VB do łączenia php5ts.dll z twoim exe, a także kompresować go UPX. Wreszcie, ma pliki win32std i winbinder skompilowane statycznie do PHP.
EDYTOWAĆ
Inną opcją jest użycie
http://www.appcelerator.com/products/titanium-cross-platform-application-development/
kompilator online, który może tworzyć pliki wykonywalne dla wielu różnych platform, z wielu różnych języków, w tym PHP
TideSDK
http://www.tidesdk.org/
TideSDK to tak naprawdę przemianowany projekt Titanium Desktop. Titanium nadal skupiał się na urządzeniach mobilnych i porzucił wersję na komputery stacjonarne, która została przejęta przez niektórych ludzi, którzy otworzyli go i nazwali TideSDK.
Ogólnie rzecz biorąc, TideSDK wykorzystuje HTML, CSS i JS do renderowania aplikacji, ale obsługuje języki skryptowe, takie jak PHP, jako moduł wtyczki, a także inne języki skryptowe, takie jak Python i Ruby.
źródło
Miałem problemy z większością narzędzi w innych odpowiedziach, ponieważ wszystkie są bardzo przestarzałe.
Jeśli potrzebujesz rozwiązania, które „po prostu zadziała”, spakuj podstawową wersję php do swojego projektu w archiwum WinRar SFX, ustaw je tak, aby wypakować wszystko do katalogu tymczasowego i wykonać
php your_script.php
.Aby uruchomić podstawowy skrypt, jedyne wymagane pliki to
php.exe
iphp5.dll
(lub wphp5ts.dll
zależności od wersji).Aby dodać rozszerzenia, spakuj je razem z plikiem php.ini:
[PHP] extension_dir = "." extension=php_curl.dll extension=php_xxxx.dll ...
źródło
Wypróbowałem większość rozwiązań podanych w pierwszej odpowiedzi, jedyne, które działało i jest niekomercyjne, to php-desktop .
Po prostu umieściłem moje pliki php w
www/
folderze, zmieniłem nazwę.exe
i mogłem uruchomić php jako exe !!Dostępna jest również pełna dokumentacja, aktualne wsparcie, kompatybilność z Windows i Linux, a opcje można łatwo zmienić.
źródło
RapidEXE jest właśnie do tego zadania:
Konwertuje projekt php na samodzielny plik exe. Miałem dość wszystkich innych kompilatorów, wypróbowałem je jeden po drugim i wszystkie mnie zawiodły. Bądź moim gościem, informacje zwrotne są zawsze mile widziane!
Uwaga dodatkowa: mechanizm za tym jest podobny do podejścia WinRAR SFX; wypakuj silnik, wyodrębnij źródło, a następnie uruchom. Jest po prostu szybszy i łatwiejszy w obsłudze. Kompilacja jednym poleceniem, skompresowane, inteligentne rozpakowywanie, automatyczne czyszczenie, łatwa konfiguracja, pełna kontrola & wersji silnika php; również rozszerzalny przy minimalnym wysiłku.
Miłego rozwoju!
źródło
Cannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
ExeOutput może również przekształcić strony internetowe PHP w aplikacje i oprogramowanie systemu Windows
Zamień strony internetowe PHP w aplikacje i oprogramowanie Windows
Aplikacje utworzone za pomocą ExeOutput for PHP obsługują skrypty PHP, aplikacje PHP i strony internetowe PHP natywnie i nie wymagają serwera WWW, przeglądarki internetowej ani dystrybucji PHP. Są autonomiczne i działają na każdym komputerze z najnowszymi wersjami systemu Windows.
ExeOutput for PHP to potężny kompilator witryn internetowych, który działa ze wszystkimi elementami występującymi w nowoczesnych witrynach: skryptami PHP, JavaScript, HTML, CSS, XML, plikami PDF, Flash, filmami Flash, filmami Silverlight, bazami danych i obrazami. Łącząc te elementy z PHP Runtime i PHP Extensions, ExeOutput for PHP tworzy plik EXE zawierający całą Twoją aplikację.
http://www.exeoutput.com/
źródło
Moje doświadczenie w tej kwestii mówi mi, że większość tych programów działa dobrze w małych projektach.
A co z dużymi projektami? np: Zend Framework 2 i kilka podobnych rzeczy.
Niektóre z nich wymagają do działania przeglądarki i trudno powiedzieć klientowi „proszę wpisać
http://localhost/
” w pasku adresu przeglądarki !!W tym celu tworzę prosty projekt: PHPPy
Nie jest to kompletny sposób tworzenia samodzielnego pliku wykonywalnego do uruchamiania projektów php, ale pomaga to zrobić.
Nie mogłem skompilować pliku Pythona z PyInstaller lub Py2exe do pliku .exe, mam nadzieję, że możesz.
Nie potrzebujesz plików wykonywalnych uniformserver.
źródło
To aktualizacja PHP Nightrain.
https://github.com/entrypass/nightrain-ep
źródło