Преобразование PHP-скрипта в автономный исполняемый файл windows
Я хочу автоматизировать довольно простую задачу. Для этого я написал небольшой PHP скрипт, который я запускаю из командной строки с помощью PHP-CLI. Теперь я хочу передать этот скрипт кому-то, но я не хочу:
- отдай исходный код
- попросите его установить PHP в системе
есть ли способ создать .exe версия PHP скрипта. Я действительно не очень беспокоюсь о де-компиляции; я больше беспокоюсь о том, чтобы просить людей установка и настройка PHP.
8 ответов:
Peachpie
https://github.com/iolevel/peachpie
Peachpie-это компилятор PHP 7 на основе Roslyn от Microsoft и рисования из популярного Фалангера. Это позволяет PHP быть выполнены в .NET/. NETCore путем компиляции кода PHP в чистом виде язык MSIL.
Phalanger
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 приложения для автономных окон .exe-приложения. Созданные exe-файлы полностью автономны, нет необходимости в PHP DLL и т. д. Код php кодируется с помощью библиотеки кодирования Turck MMCache, поэтому это идеальное решение, если вы хотите распространять свое приложение, защищая свой исходный код. Конвертер также подходит для производства .exe-файлы для оконных PHP-приложений (созданных, например, с помощью библиотеки WinBinder). Это также хорошо для создания автономных PHP сокетов серверов / клиентов (с помощью php_sockets.dll расширение). Это не совсем компилятор в том смысле, что он не производит собственный машинный код из источников PHP, но он работает!
ZZEE PHPExe
ZZEE PHPExe компилирует PHP, HTML, Javascript, Flash и другие веб-файлы в Windows GUI exes. Вы можете быстро разрабатывать Windows приложения с графическим интерфейсом пользователя, используя знакомые веб-парадигма. Вы можете использовать тот же код для онлайн и Windows-приложения с небольшими изменениями или без них. Это коммерческий продукт.
phc-win
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
торговой
WinBinder
WinBinder является открытым исходным кодом расширение на PHP, язык программирования скриптов. Это позволяет PHP программистам легко создавать собственные приложения Windows, производя быстрые и полезные результаты с минимальными усилиями. Даже короткие скрипты с несколькими десятками строк могут генерировать полезную программу, благодаря мощности и гибкости PHP.
PHPDesktop
https://github.com/cztomczak/phpdesktop
PHP для рабочего стола-это проект с открытым исходным кодом, основанная Czarek Томчак в 2012 году, чтобы обеспечить способ для разработки собственных настольных приложений с использованием веб-технологий, таких как PHP, HTML5, JavaScript & SQLite. Этот проект-это больше, чем просто компилятор PHP to EXE, он встраивает веб-браузер (Internet Explorer или Chrome embedded), веб-сервер 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 "вилка"
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, скомпилированные статически в РНР.
EDIT
другой вариант-использовать
http://www.appcelerator.com/products/titanium-cross-platform-application-development/
онлайн-компилятор, который может создавать исполняемые файлы для нескольких различных платформ, из нескольких различных языков, включая PHP
TideSDK
TideSDK на самом деле переименован в Titanium Desktop project. 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 ...
"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 и PHP-расширения, ExeOutput для PHP строит EXE-файл, который содержит полную программу.
мой опыт в этом вопросе говорит мне, что большинство из этих программ хорошо работают с небольшими проектами .
Но как насчет больших проектов? например: 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.
PHPFlexer сделает трюк, если вы упакуете свои вещи в один файл. Я знаю, что знаю, это очень ограничено и все такое, но один шаг к нирване.
Я работаю над лучшим, он называется RapidExe - он легко работает с PHP 7.2 и обрабатывает практически любое количество файлов в любой внутренней структуре папок. Бета-версии будут доступны в ближайшее время, но я не хочу использовать этот форум для рекламы или чего-нибудь. Кроме того, это совершенно бесплатно и всегда будет быть.
обновление
RapidExe уже доступен:
Comments