Quiero automatizar una tarea bastante simple. Para esto, he escrito un pequeño script PHP que ejecuto desde la línea de comandos usando PHP-CLI. Ahora quiero entregar este script a alguien pero no quiero:
- regalar el código fuente
- pedirle que instale PHP en el sistema
¿Hay alguna manera de crear una versión .exe del script PHP? Realmente no estoy muy preocupado por la descompilación; Me preocupa más pedirle a la gente que instale y configure PHP.
php
obfuscation
Salman A
fuente
fuente
Respuestas:
Melocotón
http://www.peachpie.io
https://github.com/iolevel/peachpie
Peachpie es un compilador PHP 7 basado en Roslyn por Microsoft y que se basa en el popular Phalanger. Permite que PHP se ejecute dentro de .NET / .NETCore compilando el código PHP en MSIL puro.
Falangero
http://v4.php-compiler.net/
http://wiki.php-compiler.net/Phalanger_Wiki
https://github.com/devsense/phalanger
Phalanger es un proyecto que se inició en la Universidad Charles de Praga y contó con el respaldo de Microsoft. Compila el código fuente escrito en el lenguaje de script PHP en código de bytes CIL (Common Intermediate Language). Maneja el comienzo de un proceso de compilación que se completa con el componente compilador JIT de .NET Framework. No aborda la generación ni la optimización de código nativo. Su propósito es compilar scripts PHP en ensamblados .NET, unidades lógicas que contienen código CIL y metadatos.
Bambalam
https://github.com/xZero707/Bamcompile/
Bambalam PHP EXE Compiler / Embedder es una herramienta de línea de comandos gratuita para convertir aplicaciones PHP en aplicaciones Windows .exe independientes. Los archivos exe producidos son totalmente independientes, no se necesitan php dlls, etc. El código php se codifica utilizando la biblioteca Turck MMCache Encode, por lo que es una solución perfecta si desea distribuir su aplicación mientras protege su código fuente. El convertidor también es adecuado para producir archivos .exe para aplicaciones PHP con ventana (creadas usando, por ejemplo, la biblioteca WinBinder). También es bueno para hacer servidores / clientes PHP Socket independientes (usando la extensión php_sockets.dll). NO es realmente un compilador en el sentido de que no produce código máquina nativo de fuentes PHP, ¡pero funciona!
ZZEE PHPExe
http://www.zzee.com/phpexe/
ZZEE PHPExe compila PHP, HTML, Javascript, Flash y otros archivos web en Windows GUI exes. Puede desarrollar rápidamente aplicaciones GUI de Windows empleando el conocido paradigma web PHP. Puede usar el mismo código para aplicaciones en línea y Windows con poca o ninguna modificación. Es un producto comercial.
phc-win
http://wiki.swiftlytilting.com/Phc-win
La extensión PHP bcompiler se usa para compilar código de script PHP en bytecode PHP. Este bytecode se puede incluir como cualquier archivo php siempre que se cargue la extensión bcompiler. Una vez que se han creado todos los archivos de bytecode, se utiliza un Embeder modificado para empaquetar todos los archivos del proyecto en el programa exe.
Requiere
ExeOutput
http://www.exeoutput.com/
Comercial
WinBinder
http://winbinder.org/
WinBinder es una extensión de código abierto para PHP, el lenguaje de programación de script. Permite a los programadores de PHP crear fácilmente aplicaciones nativas de Windows, produciendo resultados rápidos y gratificantes con el mínimo esfuerzo. Incluso los guiones cortos con unas pocas docenas de líneas pueden generar un programa útil, gracias a la potencia y flexibilidad de PHP.
PHPDesktop
https://github.com/cztomczak/phpdesktop
PHP Desktop es un proyecto de código abierto fundado por Czarek Tomczak en 2012 para proporcionar una forma de desarrollar aplicaciones de escritorio nativas utilizando tecnologías web como PHP, HTML5, JavaScript y SQLite. Este proyecto es más que un simple compilador de PHP a EXE, incorpora un navegador web (Internet Explorer o Chrome integrado), un servidor web Mongoose y un intérprete PHP. El flujo de trabajo de desarrollo al que está acostumbrado sigue siendo el mismo, el paso de convertir un sitio web existente en una aplicación de escritorio es básicamente una cuestión de copiarlo en el directorio "www /". El uso de la base de datos SQLite es opcional, puede incorporar la base de datos mysql / postgresql en el instalador de la aplicación.
PHP Nightrain
https://github.com/kjellberg/nightrain
Con PHP Nightrain podrá implementar y ejecutar aplicaciones web HTML, CSS, JavaScript y PHP como una aplicación de escritorio nativa en Windows, Mac y los sistemas operativos Linux. ¡Los marcos PHP populares (por ejemplo, CakePHP, Laravel, Drupal, etc.) son compatibles!
"tenedor" phc-win
https://github.com/RDashINC/phc-win
Una versión más o menos bifurcada de phc-win, utiliza las mismas técnicas que phc-win pero admite casi todas las versiones modernas de PHP. (5.3, 5.4, 5.5, 5.6, etc.) También puede usar Enigma VB para combinar php5ts.dll con su exe, así como UPX comprimirlo. Por último, tiene win32std y winbinder compilados estáticamente en PHP.
EDITAR
Otra opción es usar
http://www.appcelerator.com/products/titanium-cross-platform-application-development/
un compilador en línea que puede construir ejecutables para varias plataformas diferentes, desde varios lenguajes diferentes, incluido PHP
TideSDK
http://www.tidesdk.org/
TideSDK es en realidad el proyecto de Titanium Desktop renombrado. Titanium se mantuvo enfocado en los dispositivos móviles y abandonó la versión de escritorio, que fue asumida por algunas personas que lo han abierto y lo llamaron TideSDK.
En general, TideSDK utiliza HTML, CSS y JS para representar aplicaciones, pero admite lenguajes con script como PHP, como un módulo de complemento, así como otros lenguajes de script como Python y Ruby.
fuente
Tuve problemas con la mayoría de las herramientas en otras respuestas, ya que todas están muy desactualizadas.
Si necesita una solución que "simplemente funcione", empaque una versión básica de php con su proyecto en un archivo WinRar SFX, configúrelo para extraer todo a un directorio temporal y ejecútelo
php your_script.php
.Para ejecutar un script básico, los únicos archivos necesarios son
php.exe
yphp5.dll
(ophp5ts.dll
según la versión).Para agregar extensiones, empaquételas junto con un archivo php.ini:
fuente
Intenté la mayoría de las soluciones dadas en la primera respuesta, la única que funcionó para mí y no es comercial es php-desktop .
¡Simplemente puse mis archivos php en la
www/
carpeta, cambié el nombre.exe
y pude ejecutar mi php como un exe!También hay una documentación completa, soporte actualizado, compatibilidad con Windows y Linux, y las opciones se pueden cambiar fácilmente.
fuente
RapidEXE es exactamente para este trabajo:
Convierte un proyecto php en un exe independiente. Tuve suficiente de todos los otros compiladores, los probé uno por uno y todos me decepcionaron de una manera u otra. ¡Sea mi invitado, los comentarios son siempre bienvenidos!
Nota al margen: el mecanismo detrás de esto es bastante similar al enfoque WinRAR SFX; extraer el motor, extraer la fuente, luego ejecutar. Es más rápido y fácil trabajar con él. Compilación de un comando, comprimido, desempaquetado inteligente, limpieza automática, configuración fácil, control total del motor y versión de php; También extensible con un mínimo esfuerzo.
¡Feliz desarrollo!
fuente
Cannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
ExeOutput también puede convertir sitios web PHP en aplicaciones y software de Windows
Convierta sitios web PHP en aplicaciones y software de Windows
Las aplicaciones realizadas con ExeOutput para PHP ejecutan scripts PHP, aplicaciones PHP y sitios web PHP de forma nativa, y no requieren un servidor web, un navegador web o distribución PHP. Son independientes y funcionan en cualquier computadora con versiones recientes de Windows.
ExeOutput para PHP es un potente compilador de sitios web que funciona con todos los elementos que se encuentran en sitios modernos: scripts PHP, JavaScript, HTML, CSS, XML, archivos PDF, Flash, videos Flash, videos Silverlight, bases de datos e imágenes. Combinando estos elementos con PHP Runtime y Extensiones PHP, ExeOutput para PHP crea un archivo EXE que contiene su aplicación completa.
http://www.exeoutput.com/
fuente
Mi experiencia en este asunto me dice que la mayoría de estos programas funcionan bien con proyectos pequeños.
¿Pero qué hay de los grandes proyectos? por ejemplo: Zend Framework 2 y algunas cosas por el estilo.
Algunos de ellos necesitan un navegador para ejecutarse y es difícil decirle al cliente "¡escriba
http://localhost/
" en la barra de direcciones de su navegador!Creo un proyecto simple para hacer esto: PHPPy
Esta no es una forma completa de crear un archivo ejecutable independiente para ejecutar proyectos php, pero le ayuda a hacerlo.
No pude compilar el archivo Python con PyInstaller o Py2exe en un archivo .exe, espero que puedas.
No necesita archivos ejecutables de uniformserver.
fuente
Es una actualización de PHP Nightrain.
https://github.com/entrypass/nightrain-ep
fuente