Foros del Web » Programando para Internet » PHP »

PHP OO WINE: Usar a una aplicación exe msdos desde PHP

Estas en el tema de WINE: Usar a una aplicación exe msdos desde PHP en el foro de PHP en Foros del Web. Estimados amigos del foro, quería consultar si alguien sabe como hacer que funcione una aplicación exe con un servidor apache en ubuntu. Tengo instalado wine. ...
  #1 (permalink)  
Antiguo 06/11/2012, 06:57
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
WINE: Usar a una aplicación exe msdos desde PHP

Estimados amigos del foro, quería consultar si alguien sabe como hacer que funcione una aplicación exe con un servidor apache en ubuntu. Tengo instalado wine. Y he hecho las más diversas pruebas.

password.exe (user)
y devuelve la contraseña,

Código PHP:
echo exec('wine /var/www/password.exe'); 
esto funciona bien en el cmd de wine y tambien en el terminal.
Me imagino que debe ser un problema de permisos, por que hize un bin bash que hacia un echo de la contraseña que se ejecutaba desde php, y la parte que le tocaba a wine no la ejecutaba. ¿Qué se puede hacer para que funcione?
Gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 06/11/2012, 09:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

si lo que hace wine es dumpear la salida estándar me parece raro que no la obtengas, otra solución es ejecutar:

exec('wine /var/www/password.exe >> /var/directorio_x/contra.txt');

y luego leer con php el archivo contra.txt creado, prueba y comenta

trata de que directorio_x esté fuera del document_root
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 06/11/2012 a las 10:02
  #3 (permalink)  
Antiguo 06/11/2012, 10:25
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Hola maycolalvarez, muchas gracias por tu respuesta, estuve probando así:

exec('wine /var/www/a/password.exe >> /var/www/contra.txt');

...y nada, php no quiere ejecutar nada que tenga que ver con wine :(
En el terminal va perfecto...
  #4 (permalink)  
Antiguo 06/11/2012, 11:36
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Es posible que haya que añadir permisos en envvars, o apache2.conf?
  #5 (permalink)  
Antiguo 06/11/2012, 11:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

¿Como tienes configurado PHP con Apache? ¿CGI? ¿Mod_Php? ¿FastCGI?
  #6 (permalink)  
Antiguo 06/11/2012, 12:38
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Hola GatorV, uff, eso no sé como se mira, estoy utilizando la configuración por defecto de apache2 lo instalé en un Ubuntu Desktop por medio del terminal. Está en CGI no?
  #7 (permalink)  
Antiguo 06/11/2012, 13:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Haz un phpinfo(), en él puedes ver como lo tienes configurado, ya que depende mucho de como lo tengas enlazado el porque no puedes ejecutar el comando.

Saludos.
  #8 (permalink)  
Antiguo 06/11/2012, 13:47
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Hola GatorV, este es mi phpinfo()
https://rapidshare.com/files/220038847/info.php.html
la verdad no he tocado nada de la configuración, es la que viene por defecto.
  #9 (permalink)  
Antiguo 06/11/2012, 13:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Pues revisa en tu phpinfo, ahí te indica como esta enlazado, revisa la entrada Server API.

Saludos.
  #10 (permalink)  
Antiguo 06/11/2012, 14:05
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Cita:
Iniciado por GatorV Ver Mensaje
Pues revisa en tu phpinfo, ahí te indica como esta enlazado, revisa la entrada Server API.

Saludos.
GatorV, dice:
Server API Apache 2.0 Handler
GATEWAY_INTERFACE CGI/1.1

Realmente puedo ejecutar comandos, hize un bin bash, y lo llamé desde exec, me genera el txt pero vacío. En cambio ejecutando el bin bash directamente funciona y me escribe la contraseña.

Última edición por Etherman; 06/11/2012 a las 14:12
  #11 (permalink)  
Antiguo 06/11/2012, 14:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Eso significa que estas usando Mod_Php.

Para que tu script funcione, necesitas darle permisos al usuario bajo el que estas ejecutando Apache (generalmente es wwwuser o nobody) para que pueda ejecutar ese comando, ya que PHP esta limitado al alcance que tiene Apache.

Si fuera por CGI, puedes configurar un usuario específico para PHP.

Saludos.
  #12 (permalink)  
Antiguo 06/11/2012, 14:51
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Cita:
Iniciado por GatorV Ver Mensaje
Eso significa que estas usando Mod_Php.

Para que tu script funcione, necesitas darle permisos al usuario bajo el que estas ejecutando Apache (generalmente es wwwuser o nobody) para que pueda ejecutar ese comando, ya que PHP esta limitado al alcance que tiene Apache.

Si fuera por CGI, puedes configurar un usuario específico para PHP.

Saludos.
Gracias GatorV, es cierto que pone tambien mod_php
Loaded Modules core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_mono mod_negotiation mod_php5 mod_reqtimeout mod_setenvif mod_status

Entiendo que debo de dar permisos de superusuarios al sistema a wwuser o nobody verdad?
Cómo puedo hacerlo? añadiendo algo a php.ini?
Saludos

Última edición por Etherman; 06/11/2012 a las 15:26
  #13 (permalink)  
Antiguo 06/11/2012, 15:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

No, no es en el php.ini, es en tus reglas de usuario en tu OS, tienes que primero, averiguar bajo que usuario se ejecuta Apache, te digo esos son los usuarios "comunes" pero igual usa otro, ya que sepas que usuarios es, dale permisos para ejecutar ese comando y listo.

Saludos.
  #14 (permalink)  
Antiguo 06/11/2012, 16:29
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: WINE: Usar a una aplicación exe msdos desde PHP

Cita:
Iniciado por GatorV Ver Mensaje
No, no es en el php.ini, es en tus reglas de usuario en tu OS, tienes que primero, averiguar bajo que usuario se ejecuta Apache, te digo esos son los usuarios "comunes" pero igual usa otro, ya que sepas que usuarios es, dale permisos para ejecutar ese comando y listo.

Saludos.
Muchas gracias GatorV, voy a intentar hacer lo que me has dicho.
Un saludo.

Etiquetas: ejecucion, externa, ms2, msdos, permisos, wine, wine-php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.