Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
¿Generar apk de Android usando el script de shell de php?

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

Mi script de shell

 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

Salida de shell script ls

app autolead_data_format.pdf build build.gradle mejilla gradle gradle.properties gradlew 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'); ?>

Salida del script PHP ls

generarApk.sh generar.php APK

Nota: ls genera nombres de archivos en la carpeta

Configuré todos los permisos de archivo para el script de shell en el servidor xampp. ¿Alguien puede describir dónde me equivoco? En espera de respuestas...

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

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

about 4 years ago · Santiago Trujillo Relatório

0

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. 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 solo no ayudará si el script en sí usa rutas relativas a los archivos binarios que inicia.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda