tutoriales studio proyectos programacion guia desarrollo avanzado aplicaciones php android linux bash shell

php - programacion - proyectos android studio pdf



Generar apk de Android utilizando shell script de php? (2)

Parece que la variable de entorno PATH en el código PHP que se ejecuta en el servidor web es más limitada que la del shell en el que está trabajando. Pero puede cambiar las variables de entorno en PHP, y los comandos a partir de los cuales se verán cambios

<?php // set content type so the output is more readable in the browser header(''Content-Type: text/plain''); // set $PATH to some limited value putenv(''PATH=/bin:/sbin''); // verify, note that we have to use full path to ''env'' print(shell_exec("/usr/bin/env|grep ''^PATH=''")); // this command won''t run (assuming its full path is /usr/bin/id) print(shell_exec("id")); // add more directories to $PATH putenv(''PATH=/bin:/sbin:/usr/bin:/usr/sbin''); // verify again, we can use env without specifying the path this time print(shell_exec("env|grep ''^PATH=''")); // this command will print(shell_exec("id"));

Así que tienes que escribir putenv(''PATH=<your_shell_PATH_contents>''); en la parte superior de su script PHP. El uso de la ruta completa al script de shell por sí solo no servirá de nada si el script en sí mismo utiliza rutas relativas a los binarios que inicia.

Estoy intentando generar archivos apk Android desde el script de shell, quiero ejecutar un archivo de script de shell desde PHP. Cuando ejecuto el script de shell en el terminal, funciona perfectamente. Si intento ejecutar el script utilizando PHP, el script de shell no ejecuta todos los comandos. El comando ls en el script de shell funciona perfectamente, pero cuando se ejecuta usando PHP, otros comandos no funcionan. Estoy usando el servidor xampp en un entorno Linux.

Mi shell script

cd /home/user/AndroidStudioProjects/msvep4247-inghamautogroup-pulse-and/ ./gradlew assembleDebug cp -fr app/build/outputs/apk/app-debug.apk /opt/lampp/htdocs/sample/apk ls

Shell script salida ls

app autolead_data_format.pdf build build.gradle mejilla gradle gradle.properties gradlew.bat lib local.properties msvep4247-inghamautogroup-pulse-and.iml settings.gradle

Mi script PHP

<?php echo shell_exec(''ls''); echo shell_exec(''./generateApk.sh''); ?>

PHP script ls salida

generateApk.sh generate.php APK

Nota: ls muestra los nombres de los archivos en la carpeta.

Establecí todos los permisos de archivo para shell script en el servidor xampp. ¿Alguien puede describir donde estoy equivocado? Esperando respuestas ...


Simplemente use la ruta completa al script / ejecutable, porque el entorno es diferente cuando se ejecuta desde php.