Преобразование PHP-скрипта в отдельный исполняемый файл Windows - PullRequest
123 голосов
/ 28 января 2012

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

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

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

Ответы [ 8 ]

187 голосов
/ 28 января 2012

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 -компилятор.net /

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

https://github.com/devsense/phalanger

Phalanger - это проект, который был запущен в CharlesУниверситет в Праге и был поддержан 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-win

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

Компилятор расширения PHP используется для компиляции кода сценария 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 "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.

EDIT

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

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.

8 голосов
/ 17 марта 2016

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

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

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

6 голосов
/ 13 ноября 2015

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

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

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

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

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

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

3 голосов
/ 28 января 2012

http://winbinder.org/

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

2 голосов
/ 29 ноября 2013

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/

1 голос
/ 24 июня 2015

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

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

1 голос
/ 08 декабря 2013

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

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

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

...