我正在尝试使用 PHP shell_exec 在网络上运行apktool(只是一个解包 android 应用程序的工具),但它不起作用。有谁知道这可能是为什么?
这就是这行代码的实际样子:
$output = `apktool d -f $file_name`;
任何建议都会帮助我完全不知道为什么我运行 php 而没有任何反应。谢谢!
我正在尝试使用 PHP shell_exec 在网络上运行apktool(只是一个解包 android 应用程序的工具),但它不起作用。有谁知道这可能是为什么?
这就是这行代码的实际样子:
$output = `apktool d -f $file_name`;
任何建议都会帮助我完全不知道为什么我运行 php 而没有任何反应。谢谢!
我找到了解决方案。创建具有 exec 权限的 build.sh 文件并在其中写入以下代码:
#!/bin/bash
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin/:/usr/sbin/:/bin:/sbin/:/bin/sbin:/usr/local/bin:/usr/X11/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
/usr/local/bin/apktool b -d $1 $2
-- 用法 ./build.sh
<? php shell_exec("/path/to/build.sh $dir $file"); ?>
检查您的 Web 服务器(可能是 apache)是否有足够的权限来执行 apktool。包括 apktool 二进制文件的完整路径。如果文件名中有空格,请使用单引号。
检查您的网络服务器的日志,如果有任何详细的命令没有执行。
确保您的实际线路是:
$output = shell_exec(`apktool d -f $file_name`);
并且您的 php.ini 文件未safe_mode
打开或未在指令中shell_exec
列出。disable_functions