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

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

  • отдать исходный код
  • попросите его установить PHP в систему

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

Ответ 1

Peachpie

http://www.peachpie.io

https://github.com/iolevel/peachpie

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

кускус

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-компилятор/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. Вы можете быстро разрабатывать приложения с графическим интерфейсом Windows, используя знакомую веб-парадигму PHP. Вы можете использовать один и тот же код для онлайн-приложений и приложений Windows практически без изменений. Это коммерческий продукт.

PHC-победа

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

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

требует

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

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), веб-сервер Mongoose и интерпретатор PHP. Рабочий процесс разработки, к которому вы привыкли, остается тем же, шаг превращения существующего веб-сайта в настольное приложение - это, в основном, вопрос копирования его в каталог "www/". Использование базы данных SQLite является необязательным, вы можете встроить базу данных mysql/postgresql в установщик приложения.

PHP Nightrain

https://github.com/kjellberg/nightrain

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

phc-win "форк"

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. Наконец, он статически скомпилирован в PHP win32std и winbinder.

РЕДАКТИРОВАТЬ

Другой вариант заключается в использовании

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

онлайн-компилятор, который может создавать исполняемые файлы для разных платформ, на разных языках, включая PHP

TideSDK

http://www.tidesdk.org/

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

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

Ответ 2

Я попробовал большинство решений, приведенных в 1-м ответе, единственный, который работал и был некоммерческим, был php-desktop.

Я просто поместил свои php файлы в папку www, изменил имя .exe и смог запустить свой php как exe !!

Также имеется полная документация, актуальная поддержка и опции могут быть легко изменены.

К сожалению, большая часть проекта первого ответа была прекращена, и трудно найти идеальный способ сделать это также кроссплатформенным...

Ответ 3

У меня были проблемы с большинством инструментов в других ответах, поскольку они все очень устарели.

Если вам нужно решение, которое "просто сработает", упакуйте версию php с открытым кодом в проект в архиве WinRar SFX, установите его для извлечения всего во временный каталог и выполните php your_script.php.

Чтобы запустить базовый script, нужны только файлы php.exe и php5.dll (или php5ts.dll в зависимости от версии).

Чтобы добавить расширения, установите их вместе с файлом php.ini:

[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...

Ответ 4

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

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

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

Счастливого развития!

Ответ 5

http://winbinder.org/

"WinBinder - это новое расширение с открытым исходным кодом для PHP, языка программирования script, которое позволяет программистам PHP легко создавать собственные приложения Windows".

Ответ 6

ExeOutput также может превращать веб-сайты PHP в приложения и программное обеспечение Windows

Поверните веб-сайты PHP в приложения и программное обеспечение Windows

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

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

http://www.exeoutput.com/

Ответ 7

Мой опыт в этом вопросе говорит мне, что большинство этих программ работают хорошо с небольшими проектами.
Но как насчет крупных проектов? например, Zend Framework 2 и некоторые подобные вещи.
Некоторым из них нужен браузер для запуска, и это сложно сказать клиенту "пожалуйста, наберите http://localhost/" в адресной строке браузера!

Я создаю простой проект для этого: PHPPy

Это не полный способ создания автономного исполняемого файла для запуска php-проектов, но помогает вам сделать это.
Я не смог скомпилировать файл python с PyInstaller или Py2exe в .exe файл, надеюсь, что вы можете. Вам не нужны исполняемые файлы uniformserver.

Ответ 8

Текущий PHP Nightrain (4.0.0) написан на Python, и он использует библиотеки wxPython. Пока что wxPython работает хорошо, чтобы получить PHP Nightrain, где он сегодня, но для того, чтобы подтолкнуть PHP Nightrain к его На следующем уровне мы представляем родного брата PHP Nightrain, PHPWebkit!

Это обновление для PHP Nightrain.

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

Ответ 9

Я работаю над одним,, когда мы говорим.

Прежде чем я начал разрабатывать собственное решение, я сделал домашнее задание:

  • Я пытался использовать ZZEE PHP, что здорово. Но у него есть некоторая древняя версия IE и PHP 5.что-то, что не знает $x = [1,2,3] и настаивает на $x = array (1,2,3). Поэтому мне не хватало многих функций.
  • Также попробовал ExeOutput, который является более современным и много знает, но делает большие exe файлы и запускается довольно медленно - даже больше, чем ZZEE, они оба тяжелы, потому что они создают среду веб-сервера каждый раз, когда они это делают.
  • phpDesktop, который является справедливым решением и оснащен всем, но имеет самый большой след (ваш маленький helloworld будет 193 файла и 148 МБ и нуждается в полном инсталляторе), поэтому он не подходит для небольших инструменты.

Итак, наконец, я решил создать тот, у которого нет веб-сервера, делает крошечный exe, обладает минимальными ресурсами, быстро работает и имеет функции Edge в качестве встроенного браузера. Для этого требуется .NET, поэтому он может быть настолько мал. У вас есть php, javascript, html, а также jquery, bootstrap и все, без чего вы не можете жить. Он не похож на браузер, он работает только так. Единственная проблема (как и с другими) заключается в том, что все, что вы создаете с ней, может быть легко реконструировано; они просто js и php файлы, читаемые и все такое. Так что сейчас это только полезно для создания автострад.

Кто-нибудь заинтересован в тестировании? → > Отправляйтесь в бизнес по адресу deneskellner dot com. Благодарю вас.