Ejecutando un 'git pull' desde EXEC en PHP
Frecuentes
Visto 1,739 veces
2
Estoy tratando de ejecutar una solicitud de extracción de git usando PHP exec
en windows corriendo XAmpp
. Al ejecutar el siguiente script con exec
or system
e intente acceder al archivo que la página nunca deja de cargar. Revisé los permisos de archivo del directorio y todos son 0777. Y en ejecución git status
funciona bien No estoy seguro de cual es el problema.
<?php
ignore_user_abort(true);
set_time_limit(15);
exec('git pull origin master', $o);
echo implode("\n", $o);
?>
Actualice que no hay una contraseña en la cuenta:
C:\xampp\htdocs>git pull origin master
From github.com:************
* branch master -> FETCH_HEAD
Already up-to-date.
C:\xampp\htdocs>
Corriendo desde la terminal obtengo:
C:\xampp\htdocs>php -f update.php
PHP Warning: PHP Startup: ming: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC6
PHP compiled with build ID=API20090626,TS,VC9
These options need to match
in Unknown on line 0
Warning: PHP Startup: ming: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC6
PHP compiled with build ID=API20090626,TS,VC9
These options need to match
in Unknown on line 0
From github.com:*********
* branch master -> FETCH_HEAD
Already up-to-date.
C:\xampp\htdocs>
1 Respuestas
0
En lugar de usar exec
, que espera hasta que finalice el proceso, use passthru
y asegúrese de deshabilitar el almacenamiento en búfer de salida. De esta manera verás inmediatamente cuál es el problema.
contestado el 25 de mayo de 12 a las 21:05
¿Git está esperando alguna otra entrada del usuario, como una contraseña?
set_time_limit()
no ayuda aquí, ya que solo es aplicable al tiempo de ejecución de PHP. - BradNo hay una contraseña también actualizó la publicación. - Adam Merrifield
Estás ejecutando el script PHP desde la terminal, ¿sí? ¿O lo estás ejecutando desde la web? Si desde la web, apuesto a que su configuración de git depende de las variables de su entorno, que son diferentes si se ejecuta desde un usuario diferente (el usuario del servidor web). - Brad
Ejecútalo desde tu terminal. A ver si funciona ahí. - Brad
Actualicé la publicación. No estoy seguro de cuáles son las 2 advertencias, pero se ejecuta y se completa en cuestión de segundos. - Adam Merrifield