FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ejecutar .exe en servidor unix/windows
Hola amigos.
Estoy intentando ejecutar un programa .exe para encriptar y desencriptar claves en el servidor. Lo tengo hecho en Delphi. Está confeccionado para correr en cmd, sin ventanas. Admite tres parámetros, con los que encripta y desencripta strings. Despues las graba en un fichero que debería leer desde PHP. He estado buscando por los foros y lo más que he encontrado es que hay que hacerlo usando exec(), system() y alguna otra función similar. Estoy probando con todas estas funciones y no he conseguido que se ejecute el .exe. Dejo el programita de prueba. Código PHP:
Y el ejecutable no se ejecuta. ¿Alguien podría echarme una manita? O a lo mejor es que no se puede hacer... Gracias de antemano. |
#2
|
||||
|
||||
Si el servidor es UNIX, sólo podrás ejecutarlo si está funcionando sobre una plataforma Intel (Nada de ARM, Motorola, PowerPC...), y siempre y cuando tengas instalado el entorno de ejecución WineHQ, ya que UNIX no tiene las mismas bibliotecas que Windows.
|
#3
|
||||
|
||||
No podrás ejecutar un EXE generado en un servidor UNIX, como ya te han dicho.
Tendrás que traducir el ejecutable a otro lenguaje (PHP), o recompilarlo en Lazarus por ejemplo (que es multiplataforma) para poder ejecutarlo en UNIX.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Prueba con exec() -> http://no2.php.net/manual/en/function.exec.php
__________________
"la única iglesia que ilumina es la que arde" Anonimo |
#5
|
|||
|
|||
Gracias a todos por vuestro interés.
Bueno, creo que el servidor es Linux, pero creo que es muy similar a Unix. ¿Si el servidor fuera Windows, sería más fácil? Neftali, nunca he trabajado con Lazarus, aunque he oido hablar mucho de él en los foros de Delphi, agradecería una breve ilustración sobre este entorno de programación, sus posibilidades y cómo conseguirlo. No sé en qué plataforma trabaja mi servidor, ni cómo saberlo Ñuño (Me gusta tu pseudónimo porque es muy espaÑÑÑÑol). Y por último, Julián, he probado con exec() y tampoco me ejecuta el .exe. A lo mejor no estoy haciéndolo bien o el servidor está en "Save mode", (que he leído por ahí) y por éso no me ha funcionado, ilumíname si puedes con un ejemplo. GRACIAS de nuevo a todos por vuestro interés. Sigo estudiando y buscando... |
#6
|
||||
|
||||
Cita:
Nopuedes lanzar un EXE generado en Delphi (Windows) en un servidor de este tipo. A no ser que sea sobre una máquina virtual, pero eso en realidad es montar un Windows dentro del Linux para lanzar el ejecutable. Cita:
Cita:
Si tu aplicación está echa en Delphi, dependiendo que cómo sea, podría compilar (sin apenas sin cambios) en Lazarus. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Pues es esencial que sepas la plataforma exacta (al menos, qué microprocesador y qué sistema operativo usa). Pregunta al administrador del sistema, si es necesario, pero antes de hacer nada más deberías saberlo.
Y me alegra que te guste el nick. Precisamente me lo puse por la Ñ. |
#8
|
|||
|
|||
Gracias de nuevo por vuestra ayuda, (Neftali, Ñuño) (Por orden de respuesta, que de importancia para mí es la misma)
Seguiré investigando y si lo consigo, ya os cuento. Un saludo. |
#9
|
|||
|
|||
Hola, de nuevo.
Os cuento. He instalado Lazarus. He convertido las unidades que usaba con Delphi. Me ha costado entender el tema de los paquetes, pero he conseguido complilar el programa con Lazarus. El programa comienza según código que sigue:
y el script en php es así: Código PHP:
Bueno, el Lazarus lo he instalado y ejecutado en Windows que es la plataforma que utilizo. No sé si tendré que hacer algo en el IDE de Lazarus para que genere código compatible con Linux/Unix. Si alguien puede ayudarme, gracias. Un saludo. |
#10
|
|||
|
|||
Ah! se me olvidó aclarar un par de cosas. El ejecutable generado con Lazarus, es casi 3 veces mayor que el generado por Delphi. Y otra cosa el ejecutable generado por Lazarus, funciona PERFECTAMENTE en Windows.
Saludos. |
#11
|
||||
|
||||
Pues si el programa te funciona, ya está casi todo.
Ahora instalas el Lazarus en Linux/Unix, compilas el programa y debería funcionar. Que es lo que ya habíamos comentado aquí: Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#12
|
|||
|
|||
Gracias, Neftalí.
Es que ahora tengo otros dos problemas. 1- Nunca he utilizado Linux y no lo tengo instalado, (ni tengo idea) en mi PC. 2- Tambien tendría que instalar el Lazarus en un sistema que desconozco. Digo yo, si el Lazarus el multiplataforma, y tiene una opción de generar un ejecutable Linux (Al menos éso he entendido en la pestaña "Proyecto/Opciones de Proyecto/Opciones del Compilador/Generación de Código/Plataforma Objetivo/Sistema Operativo Deseado/Linux") Cuando intento compilar con esta "plataforma objetivo" me lanza un error y me genera una Unit llamada fcllaz. el error es el siguiente: "fcllaz.pas(0,0) Fatal: Can not find unit system used by fcllaz." Consecuentemente, no termina la compilación. Estoy empezando con Lazarus, pero creo que lo que intento es lícito. Sigo investigando y buscando. He encontrado otro compilador de free pascal llamado CodeTyphon, lo he instalado siguiendo las instrucciones obtenidas en la página de descarga que es pilotlogic.com y después de esperar casi media hora de insstalación en cmd ha terminado y no me ha creado el icono en el escritorio, y no sé cómo puedo ejecutarlo. Aaaaah! Me crecen los enanos..... Gracias por vuestra ayuda, sigo peleando.... Un saludo. |
#13
|
||||
|
||||
Codetyphon es lazarus, al que han añadido muchos componentes y han hecho algunos cambios.
|
#14
|
|||
|
|||
Bueno, bueno, bueno....
Casi haciendo juegos malabares, he encontrado la forma de entrar en el Ide de CodeTyphon, he tenido que añadir un paquete en el que tengo 4 unidades que uso en mi proyecto, he intentado compilar el programa con la salida en Linux y he obtenido el mismo mensaje de error: "fcllaz.pas(0,0) Fatal: Can not find unit system used by fcllaz." El IDE ES MUY SEMEJANTE al de Lazarus y creo que que los dos van paralelos ("para lelos") por que generan los mismos problemas, y son casi exactamente iguales. Estoy empezando a "bajar las manos" nada es lo que parece y lo que yo busco, creo que sólo puedo conseguirlo como dice Neftalí (Creo que lleva acento en la í) O sea, instalando un sistema Linux y despues el Lazarus para Linux. Yo no llego a tanto, pero creo que si llamamos multiplataforma a un programa es porque puede correr en varias plataformas, no porque tenga una versión para cada plataforma. Poco mérito tiene que un programa ejecutado en Linux, produzca ejecutables en Linux. ¡¡¡Faltaría más que no pudiera hcerlo!!! Lo verdaderamente interesante, sería que corriendo en un sistema, pudiera generar ejecutables, que pudieran ejecutarse en otros sistemas a elegir. Bueno, esto son elucubraciones mías, quizás por la "pataleta" de que esperaba de un compilador algo que no me ha proporcionado. Tanto Lazarus, como CodeTyphon prometen ser compatibles con otras plataformas y no lo cumplen. Vamos, si para hacer un ejecutable en Linux tengo que generarlo desde Linux, esto quiere decir que lo que ambos prometen de que se pueden generar ejecutables en Android, por poner un ejemplo, tengo que instalar un sistema operataivo Android y generarlos desde el mismo. Con todo el mérito de ambos compliladores, esto es poco operativo. Estoy empezando a ser pesado, pero es que estoy muy defraudado. Saludos para todos los que tenéis la paciencia de leerme. |
#15
|
||||
|
||||
¿Defraudado por algo que no conoces y que casi estás todavía instalando?
Como he comentado antes, codetyphon es lazarus, por eso son tan parecidos, porque es lo mismo. Creo que no deberías rendirte tan fácilmente, tendrías que informarte, mirar la web de lazarus, la documentación, preguntar en sus foros, etc. |
#16
|
||||
|
||||
Cita:
|
#17
|
||||
|
||||
Cita:
Software multiplataforma puede dividirse en dos tipos; requiere una compilación individual para cada plataforma que le da soporte, y el otro se puede ejecutar directamente en cualquier plataforma sin preparación especial,... En el caso de los ejecutables yo me conformo con lo segundo... ;-) Entiendo que el mismo programa puedes compilarlo sin cambios en ambos sistemas y te va a funcionar. Windows y Unix son sistemas operativos diferentes y no tiene lógica que un ejecutable (EXE) o una DLL que corre directamente sobre el sistema funcione en ambos sin cambios. Lo que tú comentas de multiplataforma (que sería lo ideal) me da la impresión de que sólo funciona con programas que "corren" sobre máquinas virtuales, por lo tanto en ese caso, los programas en sí no son multiplataforma, lo que son multiplataforma son las máquinas virtuales donde corren; Por ejemplo Java. ¿Has probado a instalar una máquina virtual en Windows (VirtualBox) con un Ubuntu, por ejempo? Luego instalas Lazarus y compilas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#18
|
|||
|
|||
Gracias de nuevo a todos.
Dos cosas son ciertas, que tengo poca experiencia con Lazarus/CodeTyphon y otra que tal vez necesitaba haberme informado más de sus resultados reales, pues yo entendí lo de multiplataforma, como "generación de código en una plataforma, para ser usado en otra" y veo que no es el caso. Estoy seguro que funcionaría, Neftalí Cita: ¿Has probado a instalar una máquina virtual en Windows (VirtualBox) con un Ubuntu, por ejempo? Luego instalas Lazarus y compilas. Pero mis conocimientos no llegan a tanto. Desinstalaré los dos, puesto que en Windows ya me apaño con Delphi, y renunciaré a ejecutar el programa en el servidor. Gracias a todos por aportarame tantas soluciones, pero yo soy sólo un aficionado y no me compensa el esfuerzo que tengo que hacer para lograr el resultado digamos que el balance coste/beneficio no me compensa. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ejecutar orden de unix en kylix | emeritos | Lazarus, FreePascal, Kylix, etc. | 1 | 23-02-2008 22:45:10 |
Ejecutar aplicación en Unix | MAngelito | Lazarus, FreePascal, Kylix, etc. | 6 | 08-12-2005 01:11:15 |
Instalar firebird en un servidor unix | andressanchez | Varios | 2 | 18-08-2005 21:42:28 |
Enviar un comando a una maquina unix desde Windows | SMTZ | Internet | 0 | 15-11-2004 18:19:24 |
Servidor Unix Linux | Omar Alejandro | Varios | 1 | 25-09-2003 04:13:45 |
|