Foros del Web » Programando para Internet » PHP »

exec en windows7

Estas en el tema de exec en windows7 en el foro de PHP en Foros del Web. Hola. Tengo un archivo .bat que quiero ejecutar, en teoría con el método exec funciona en windows XP, pero probando exáctamente el mismo código en ...
  #1 (permalink)  
Antiguo 29/01/2013, 10:30
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
exec en windows7

Hola.
Tengo un archivo .bat que quiero ejecutar, en teoría con el método exec funciona en windows XP, pero probando exáctamente el mismo código en windows 7 no funciona. Lee el archivo, muestra la salida, pero no lo ejecuta.

Estoy seguro a un 99% que habilité los mismos servicios en los 2 sistemas (2 equipos).

Mi pregunta es si windows7 tiene algún servicio más que no permita la ejecución de los archivos, o si alguien ya pudo hacerlo, y de qué manera.

Gracias.
  #2 (permalink)  
Antiguo 29/01/2013, 13:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: exec en windows7

Muestra tu código para darnos una idea de qué estamos hablando.

Por cierto, yo migré de XP a 7 y no he tenido problemas, por lo que tal vez sea una cuestión de rutas, pero, insisto, sin ver código... ni idea!
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/01/2013, 14:43
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Ahora estaba probando un ejemplo muy sencillo, para asegurar que no eran fallos de otro tipo, ya depuré todo el código, y el fallo lo da el exec() que no ejecuta:
Cita:
<?php
exec("C:/wamp/www/ejemplo/pegar.bat");
?>
El archivo pegar.bat funciona si lo ejecuto haciendo doble click, pero no funciona ejecutando esa línea vía web. (en XP funciona de ambas maneras).

Ya permití al servicio de apache que interactúe con el escritorio.
SAFE_MODE=off
Y le di vueltas a todo y no encuentro solución.

Gracias
  #4 (permalink)  
Antiguo 29/01/2013, 16:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: exec en windows7

Obtienes algún mensaje de error o simplemente no funciona?

Agrega error_reporting(E_ALL); al inicio del script donde haces el exec() y usa los otros dos parámetros para ver si hay alguna salida:

Código PHP:
Ver original
  1. exec('tu-archivo.bat', $salida, $estado);
  2. var_dump($estado, $salida);

Aunque también podría ser algo tan sencillo como que necesitas ejecutar cmd y agregar el nombre de tu archivo.bat como parámetro.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 30/01/2013, 04:52
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Cita:
error_reporting(E_ALL);
exec("C:/wamp/www/p/abrir.bat", $salida, $estado);
var_dump($estado,$salida);
ahora probé con otro archivo .bat, pero el resultado es el mismo, funciona al abrirlo, pero no al acceder a él con exec().

El resultado en el navegador es el siguiente:
Cita:
int 0

array (size=4)
0 => string '' (length=0)
1 => string 'C:\wamp\www\p>nircmd win activate ititle "TeamViewer"' (length=53)
2 => string '' (length=0)
3 => string 'C:\wamp\www\p>nircmd wait 500' (length=29)
Yo no saco ningun conclusión de esta salida, pero llevo poco tiempo dándole a php.
Seguro que alguien habrá por ahí que me dé una buena lección.

Cita:
Aunque también podría ser algo tan sencillo como que necesitas ejecutar cmd y agregar el nombre de tu archivo.bat como parámetro.
No entiendo muy bien a que te refieres con esto, si pudieras explicar un poco más detallado...

Gracias.
  #6 (permalink)  
Antiguo 30/01/2013, 11:19
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Y se podría ejecutar comandos cmd en el servidor directamente sin falta de ejecutar el .bat?

ya que el .bat lo que hace es ejecutar 3 lineas en cmd.

Ya me va a estallar la cabeza de darle vueltas al tema..., y nada.

Gracias.
  #7 (permalink)  
Antiguo 01/02/2013, 09:52
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Nadie ha probado esto antes con windows 7?

Es que lo necesito, ya intenté pasarlo todo a XP, pero el software sobre el que va mi aplicación es incompatible, solo vienen drivers para win7 y server2008.

Seguro que es una pijada que pasé por alto, pero llevo una semana así...
  #8 (permalink)  
Antiguo 01/02/2013, 09:53
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: exec en windows7

¿Que servidor Web usas? Ya que los permisos de PHP dependen mucho de bajo que servidor se este ejecutando Y como este atado a dicho servidor (CGI/Módulo).

Saludos.
  #9 (permalink)  
Antiguo 01/02/2013, 09:56
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: exec en windows7

Ya intentaste desactivando UAC?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 01/02/2013, 09:58
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

instalé wampserver, que trae apache 2.2.22 y php 5.4.3

edito: El UAC está desactivado.
  #11 (permalink)  
Antiguo 01/02/2013, 10:18
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: exec en windows7

Revisa como esta integrado PHP con Apache en WampServer, si esta como CGI, tienes que darle permisos al binario de PHP (php.exe) para ejecutar archivos, ya que por default no los tiene.

Si esta como Módulo, entonces tienes que dárselos a Apache.

Saludos.
  #12 (permalink)  
Antiguo 01/02/2013, 10:39
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Me parece que está en módulo, está como venía por defecto.

y ya le di permisos al servicio wampapache.

Yo creo que es por algo de seguridad de windows 7, porque en XP funciona sin problema activando esa opción.

Gracias por tu tiempo.
  #13 (permalink)  
Antiguo 01/02/2013, 10:49
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: exec en windows7

Tienes que darle permisos como tal al ejecutable de Apache, que es el que esta registrado en el servicio, ya que cuando esta como servicio sus permisos son muy limitados, revisa esto:
Cita:
How to Grant Permissions in Windows 7

Locate the file or folder on which you want to take ownership in windows explorer

Right click on file or folder and select “Properties” from Context Menu

Click on Edit button in Properties windows Click ok to confirm UAC elevation request.

Select user/group from permission windows or click add to add other user or group.

Now under Permission section check the rights which you want to grant i.e check
.
  #14 (permalink)  
Antiguo 01/02/2013, 11:30
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Tampoco parace funcionar así.

Primero le di permisos al httpd, luego a la carpeta de apache entera y despues en la del wamp.
Y seguía sin funcionar, reinicié por si no habia pillado los cambios y sigue igual

PD: estoy empezando a odiar Windows 7
  #15 (permalink)  
Antiguo 01/02/2013, 11:51
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: exec en windows7

También otra cosa que puedes probar es que revises que ambos (Apache) y el ejecutable que quieres cargar pertenezcan al mismo grupo.

Saludos.
  #16 (permalink)  
Antiguo 01/02/2013, 12:05
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

El .bat está en el directorio de wamp, y heredó todos los privilegios de la carpeta wamp, (no sé si así pertenecerán al mismo grupo, pero supongo que si).

Y esto sigue sin funcionar...
  #17 (permalink)  
Antiguo 01/02/2013, 12:06
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: exec en windows7

No me refiero al .bat, si no al programa que ejecuta el .bat ya que es muy diferente.

Saludos.
  #18 (permalink)  
Antiguo 01/02/2013, 12:08
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

El nircmd?
  #19 (permalink)  
Antiguo 01/02/2013, 12:13
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: exec en windows7

Leyendo por diferentes posts, parece ser que cuando usas Windows 7, es forzoso que instales XAMPP (o WAMP en este caso) en modo Administrador real, no solo con permisos de administrador y que no instales apache y mysql como servicio, si no que los inicies manualmente para que hereden precisamente los permisos de administrador al ejecutar el programa.
  #20 (permalink)  
Antiguo 01/02/2013, 12:24
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Cita:
Leyendo por diferentes posts, parece ser que cuando usas Windows 7, es forzoso que instales XAMPP (o WAMP en este caso) en modo Administrador real, no solo con permisos de administrador y que no instales apache y mysql como servicio, si no que los inicies manualmente para que hereden precisamente los permisos de administrador al ejecutar el programa.
Voy a investigar como hacerlo de esa manera, porque ahora mismo no sabría hacerlo, y hasta el lunes no tengo acceso a ningún windows 7 para probar.

Quiero darte las gracias de verdad por tu tiempo y ayuda.

Saludos
  #21 (permalink)  
Antiguo 01/02/2013, 12:25
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: exec en windows7

Primero tienes que habilitar la cuenta de Administrador (ya que por defecto viene deshabilitada) y logearte como Administrador para instalarlo.

Saludos.
  #22 (permalink)  
Antiguo 04/02/2013, 02:51
 
Fecha de Ingreso: enero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: exec en windows7

Entonces los pasos a seguir serian?

- Entrar como administrador
- Y luego instalar apache, php y mysql, individualmente? es decir, instalar manualmente cada uno de ellos, en vez de hacerlo con el ejecutable que trae wamp?

Es lo que voy a probar hoy, pero no estoy seguro porque no entendí muy bien esta parte:
Cita:
y que no instales apache y mysql como servicio, si no que los inicies manualmente para que hereden precisamente los permisos de administrador al ejecutar el programa.
  #23 (permalink)  
Antiguo 04/02/2013, 16: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: exec en windows7

Pues sí puedes usar wamp o xampp, pero lo importante es que lo instales como administrador y que no lo dejes en modo de servicio, si no que los inicies por panel de control que traen.

Saludos.

Etiquetas: exec, windows7
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.
Tema Cerrado




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