Web

Преобразование сценария PHP в автономный исполняемый файл Windows

Я хочу автоматизировать довольно простую задачу. Для этого я написал небольшой PHP-скрипт, который я запускаю из командной строки с помощью PHP-CLI. Теперь я хочу передать этот скрипт кому-нибудь, но не хочу:

  1. передавать исходный код скрипта;

  2. просить устанавливать PHP на систему.

Есть ли способ создать .exe-версию PHP-скрипта? Я не очень беспокоюсь о декомпиляции; я больше беспокоюсь о том, чтобы просить людей устанавливать и настраивать PHP.

 

Ответ 1

Существует несколько инструментов для выполнения вашей задачи.

Peachpie

http://www.peachpie.io

https://github.com/iolevel/peachpie

 

Peachpie это компилятор PHP 7, основанный на Roslyn от Microsoft и заимствованный из популярного Phalanger. Он позволяет выполнять PHP в среде .NET/.NETCore путем компиляции PHP-кода в чистый MSIL.

Phalanger

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

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

https://github.com/devsense/phalanger

 Phalanger — это проект, который был начат в Карловом университете в Праге и поддержан компанией Microsoft. Он компилирует исходный код, написанный на языке сценариев PHP, в байт-код CIL (Common Intermediate Language). Он обрабатывает начало процесса компиляции, который завершается компонентом JIT-компилятора .NET Framework. Разработчики не занимались генерацией и оптимизацией родного кода. Его цель — компиляция PHP-скриптов в сборки .NET, логические единицы, содержащие CIL-код и метаданные.

Bambalam

https://github.com/xZero707/Bamcompile/

Bambalam PHP EXE Compiler/Embedder это бесплатный инструмент командной строки для преобразования PHP приложений в автономные Windows .exe приложения. Создаваемые exe-файлы полностью автономны, не требуют php dll и т. д. Код php кодируется с помощью библиотеки Turck MMCache Encode, поэтому это идеальное решение, если вы хотите распространять свое приложение, защищая исходный код. Конвертер также подходит для создания .exe-файлов для оконных PHP-приложений (созданных, например, с помощью библиотеки WinBinder). Помимо этого, он подходит для создания автономных серверов/клиентов PHP Socket (с использованием расширения php_sockets.dll). Это НЕ настоящий компилятор в том смысле, что он не производит родной машинный код из исходников PHP, но он работает!

ZZEE PHPExe

http://www.zzee.com/phpexe/

ZZEE PHPExe компилирует PHP, HTML, Javascript, Flash и другие веб-файлы в Windows GUI exes. Вы можете быстро разрабатывать GUI-приложения для Windows, используя привычную веб-парадигму PHP. Вы можете использовать один и тот же код для онлайн- и Windows-приложений без особых изменений. Это коммерческий продукт.

phc-win

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

 Расширение PHP bcompiler используется для компиляции кода PHP-скрипта в байт-код PHP. Этот байт-код может быть включен, как любой php-файл, при условии, что расширение bcompiler загружено. После создания всех файлов байт-кода используется модифицированный Embeder для упаковки всех файлов проекта в exe-файл программы.

ExeOutput

http://www.exeoutput.com/

 Для коммерческого использования.

WinBinder

http://winbinder.org/

WinBinder это расширение с открытым исходным кодом для PHP, языка программирования сценариев. Оно позволяет программистам PHP легко создавать собственные приложения для Windows, получая быстрые и полезные результаты при минимальных усилиях. Даже короткие скрипты в несколько десятков строк могут создать полезную программу благодаря силе и гибкости PHP.

PHPDesktop

https://github.com/cztomczak/phpdesktop

 PHP Desktop — это проект с открытым исходным кодом, основанный Чареком Томчаком в 2012 году с целью предоставления возможности разработки нативных настольных приложений с использованием веб-технологий, таких как PHP, HTML5, JavaScript и SQLite. Этот проект — не просто компилятор PHP в EXE, он включает в себя веб-браузер (Internet Explorer или Chrome embedded), веб-сервер Mongoose и интерпретатор PHP. Привычный для вас рабочий процесс разработки остается прежним, шаг превращения существующего веб-сайта в настольное приложение сводится к копированию его в каталог «www/». Использование базы данных SQLite необязательно, вы можете встроить базу данных mysql/postgresql в инсталлятор приложения.

PHP Nightrain

https://github.com/kjellberg/nightrain

 Используя PHP Nightrain, вы сможете развернуть и запустить веб-приложения на HTML, CSS, JavaScript и PHP в качестве собственного настольного приложения на операционных системах Windows, Mac и Linux. Популярные PHP Frameworks (например, CakePHP, Laravel, Drupal и т. д.) хорошо поддерживаются!

phc-win "fork"

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

 Более или менее форкнутая версия phc-win, использует те же методы, что и phc-win, но поддерживает почти все современные версии PHP (5.3, 5.4, 5.5, 5.6 и т. д.).Помимо этого, он может использовать Enigma VB для объединения php5ts.dll с вашим exe, а также UPX сжатия. Наконец, win32std и winbinder компилируются в PHP статически.

TideSDK

http://www.tidesdk.org/

 TideSDK — это фактически переименованный проект Titanium Desktop. Titanium по-прежнему сосредоточен на мобильных устройствах, отказавшись от настольной версии, которую взяли на себя некоторые люди, сделавшие открытый исходный код, назвав его TideSDK.

Как правило, TideSDK использует HTML, CSS и JS для рендеринга приложений, но он поддерживает скриптовые языки, такие как PHP, в качестве подключаемого модуля, а также другие скриптовые языки, такие как Python и Ruby.

 

Ответ 2

Если вам нужно решение, которое будет «просто работать», упакуйте базовую версию php с вашим проектом в архив WinRar SFX, настройте его на извлечение всего во временный каталог и выполните php your_script.php. Для запуска базового скрипта требуются только файлы php.exe и php5.dll (или php5ts.dll, в зависимости от версии). Чтобы добавить расширения, упакуйте их вместе с файлом php.ini:

[PHP]

extension_dir = "."

extension=php_curl.dll

extension=php_xxxx.dll

 

Ответ 3

RapidEXE подходит именно для этой работы.

Он конвертирует php-проект в отдельный exe-файл. Мне хватило всех других компиляторов, я пробовал их один за другим, и все они так или иначе разочаровали меня. 

Примечание: механизм, лежащий в основе этого, очень похож на подход WinRAR SFX извлечь движок, извлечь исходники, затем запустить. Это просто быстрее и проще в работе. Компиляция одной командой, сжатие, умная распаковка, автоматическая очистка, легкая настройка, полный контроль над php движком и версией; также расширяемость с минимальными усилиями.

 

Ответ 4

Приложения, созданные с помощью ExeOutput for PHP, выполняют PHP-скрипты, PHP-приложения и PHP-сайты в естественном режиме и не требуют веб-сервера, веб-браузера или дистрибутива PHP. Они автономны и работают на любом компьютере с последними версиями Windows.

ExeOutput for PHP это мощный компилятор веб-сайтов, который работает со всеми элементами, встречающимися на современных сайтах: PHP-скрипты, JavaScript, HTML, CSS, XML, PDF-файлы, Flash, Flash видео, Silverlight видео, базы данных и изображения. Комбинируя эти элементы с PHP Runtime и PHP Extensions, ExeOutput for PHP создает EXE-файл, который содержит ваше полное приложение.

http://www.exeoutput.com/

Схожие статьи

Web

Объединение или слияние массива на основе значений

Web

Как вставить карту на сайт HTML, как сделать это просто по шагам

Web

Для laravel требуется расширение Mcrypt PHP

Web

Потеря PHP сеанса после перенаправления