Преобразование PHP-скрипта в автономный исполняемый файл windows
Я хочу автоматизировать довольно простую задачу. Для этого я написал небольшой PHP-скрипт, который я запускаю из командной строки с помощью PHP-CLI. Теперь я хочу передать этот скрипт кому-то, но я не хочу:
- отдать исходный код
- попросите его установить PHP в системе
есть ли способ создать .exe версию PHP-скрипта. Я действительно не очень беспокоюсь о де-компиляции; я больше беспокоюсь о том, чтобы просить людей установка и настройка PHP.
8 ответов
Peachpie
https://github.com/iolevel/peachpie
Peachpie-компилятор PHP 7, основанный на Roslyn от Microsoft и основанный на популярном Phalanger. Он позволяет выполнять PHP в .NET/.NETCore путем компиляции кода PHP в pure язык MSIL.
Phalanger
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
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
торговой
WinBinder
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
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
...
"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-файл, содержащий ваше полное приложение.
мой опыт в этом вопросе говорит мне, что большинство этих программ хорошо работают с небольшими проектами .
Но как насчет больших проектов? 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.
PHPFlexer сделает трюк, если вы упакуете свои вещи в один файл. Я знаю, я знаю, это очень ограниченно и все такое, но один шаг к нирване.
Я работаю над лучшим, он называется RapidExe - он работает без проблем с PHP 7.2 и обрабатывает практически любое количество файлов в любой внутренней структуре папок. Бета-версии будут доступны в ближайшее время, но я не хочу использовать этот форум для рекламы или чего-нибудь. Кроме того, это совершенно бесплатно и всегда будет быть.
обновление
RapidExe уже доступен: