Конструкция компилятора — Преобразование PHP-скрипта в отдельный исполняемый файл Windows

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

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

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

115

Решение

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.

177

Другие решения

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

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

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

7

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

Если вам нужно решение, которое будет «просто работать», упакуйте пустую версию 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
...
6

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

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

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

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

5

http://winbinder.org/

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

3

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

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

Приложения, созданные с помощью ExeOutput для 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/

2

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

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

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

1

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

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

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

1
По вопросам рекламы [email protected]