Web

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

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

  1. передавать исходный код скрипта;

  2. просить устанавливать PHP на систему.

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

 

Ответ 1

Существует несколько инструментов для выполнения вашей задачи.

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

phc-win

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

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

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

PHP Nightrain

https://github.com/kjellberg/nightrain

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

TideSDK

http://www.tidesdk.org/

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

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

 

Ответ 2

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

 

Ответ 3

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

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

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

 

Ответ 4

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

Схожие статьи

Самый быстрый DNS-сервер России: сравниваем и выбираем лучший из них
Web

Самый быстрый DNS-сервер России: сравниваем и выбираем лучший из них

Web

Как сохранить изображение PNG на стороне сервера из URI данных base64

Google DNS не работает: как исправить эту проблему самостоятельно?
Web

Google DNS не работает: как исправить эту проблему самостоятельно?

Goo.gl: что это за ссылки, откуда они берутся и стоит ли им доверять?
Web

Goo.gl: что это за ссылки, откуда они берутся и стоит ли им доверять?