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

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

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

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

8 ответов


Peachpie

http://www.peachpie.io

https://github.com/iolevel/peachpie

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

Phalanger

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

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

https://github.com/devsense/phalanger

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

Bambalam

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

Bambalam PHP EXE Compiler / Embedder-бесплатный инструмент командной строки для преобразования PHP приложения для автономных окон .exe-приложения. Производимые exe-файлы полностью автономны, не нуждаются в PHP DLL и т. д. Код php кодируется с помощью библиотеки кодирования Turck MMCache, поэтому это идеальное решение, если вы хотите распространять свое приложение, защищая исходный код. Конвертер также соответствующ для производить .exe-файлы для оконных PHP-приложений (созданных, например, с помощью библиотеки WinBinder). Это также хорошо для создания автономных серверов/клиентов PHP-сокетов (с помощью 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-win

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

расширение PHP bcompiler используется для компиляции кода скрипта PHP в байт-код PHP. Этот байт-код может быть включен так же, как любой файл php, пока загружается расширение bcompiler. После создания всех файлов байт-кода для упаковки всех файлы проекта в программе 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 для рабочего стола-это проект с открытым исходным кодом, основанная Czarek Томчак в 2012 году, чтобы обеспечить способ разработки собственных настольных приложений с использованием веб-технологий, таких как PHP, HTML5, JavaScript и SQLite. Этот проект больше, чем просто компилятор PHP для EXE, он встраивает веб-браузер (Internet Explorer или Chrome embedded), веб-сервер Мангуста и интерпретатор 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 "вилка"

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 compilied статически в РНР.

редактировать

другой вариант-использовать

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.


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

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

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

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


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

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

для запуска базового сценария требуются только файлы php.exe и php5.dll (или php5ts.dll в зависимости от версии).

чтобы добавить расширения, упакуйте их вместе с РНР.ini-файл:

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

http://winbinder.org/

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


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/


мой опыт в этом вопросе говорит мне, что большинство этих программ хорошо работают с небольшими проектами .
Но как насчет больших проектов? e.g: 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


PHPFlexer сделает трюк, если вы упакуете свои вещи в один файл. Я знаю, я знаю, это очень ограниченно и все такое, но один шаг к нирване.

Я работаю над лучшим, он называется RapidExe - он работает без проблем с PHP 7.2 и обрабатывает практически любое количество файлов в любой внутренней структуре папок. Бета-версии будут доступны в ближайшее время, но я не хочу использовать этот форум для рекламы или чего-нибудь. Кроме того, это совершенно бесплатно и всегда будет быть.

обновление

RapidExe уже доступен:

http://deneskellner.com/sw/rapidexe