Я хочу автоматизировать довольно простую задачу. Для этого я написал небольшой PHP-скрипт, который я запускаю из командной строки с помощью PHP-CLI. Теперь я хочу передать этот скрипт кому-нибудь, но не хочу:
передавать исходный код скрипта;
просить устанавливать 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/
Web