首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用php中的shell脚本生成android apk?

使用php中的shell脚本生成android apk?
EN

Stack Overflow用户
提问于 2017-04-26 19:34:46
回答 2查看 1.9K关注 0票数 17

我试图从外壳脚本生成安卓apk文件,我想从PHP执行一个外壳脚本文件。当我在终端中运行shell脚本时,它工作得很好。如果我尝试使用PHP运行脚本,shell脚本不会执行所有命令。脚本中的PHP ls命令运行良好,但在使用PHP执行时,其他命令不起作用。我在Linux环境中使用xampp服务器。

我的shell脚本

代码语言:javascript
复制
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脚本ls输出

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

我的PHP脚本

代码语言:javascript
复制
   <?php
      echo shell_exec('ls');
      echo shell_exec('./generateApk.sh');
   ?>

PHP脚本ls输出

generateApk.sh generate.php应用程序包

注意:ls输出文件夹中的文件名

我在xampp服务器中设置了shell脚本的所有文件权限。有谁能描述一下我哪里错了吗?正在等待响应...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-28 20:31:49

只需使用脚本/可执行文件的完整路径,因为从php运行时环境是不同的。

票数 11
EN

Stack Overflow用户

发布于 2017-04-29 01:03:53

似乎PHP代码中在web服务器中执行的PATH环境变量比您正在工作的shell中的环境变量有更多的限制。但是您可以在PHP中更改环境变量,从PHP启动的命令将看到这些更改。

代码语言:javascript
复制
<?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"));

因此,您必须在PHP脚本的顶部编写putenv('PATH=<your_shell_PATH_contents>');。如果脚本本身使用它启动的二进制文件的相对路径,那么仅使用shell脚本的完整路径是没有帮助的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43633044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档