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.