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

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

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

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

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

http://www.bambalam.se/bamcompile/

Bambalam PHP EXE Compiler / Embedder – бесплатный инструмент командной строки для преобразования приложений PHP в автономные приложения Windows .exe. Полученные файлы exe полностью автономны, не нужны php dll и т. Д. PHP-код кодируется с использованием библиотеки Encck 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. Вы можете быстро разрабатывать приложения Windows GUI, используя привычную парадигму веб-сайта PHP. Вы можете использовать один и тот же код для онлайн-приложений и приложений Windows с небольшой или никакой модификацией. Это коммерческий продукт.

PHC-победа

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

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

требует

  • 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

http://www.naetech.com/php-nightrain

Используя PHP Nightrain, вы сможете развертывать и запускать веб-приложения HTML, CSS, JavaScript и PHP в качестве собственного настольного приложения в ОС Windows, Mac и Linux. Популярные PHP-платформы (например, 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.

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

Другим вариантом является использование

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

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

TideSDK

http://www.tidesdk.org/

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

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

http://winbinder.org/

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

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

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

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

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

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

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

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/

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

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

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

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

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

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

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

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

  • Я пытался использовать 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 – спасибо.