PHP shell_execを使用してWeb上でapktool (Androidアプリケーションをアンパッケージするためのツール)を実行しようとしていますが、機能していません。なぜこれが起こるのか誰かが知っていますか?
コード行は実際には次のようになります。
$output = `apktool d -f $file_name`;
どんな提案でも、なぜphpを実行しても何も起こらないのか、完全に途方に暮れるのに役立ちます。ありがとう!
PHP shell_execを使用してWeb上でapktool (Androidアプリケーションをアンパッケージするためのツール)を実行しようとしていますが、機能していません。なぜこれが起こるのか誰かが知っていますか?
コード行は実際には次のようになります。
$output = `apktool d -f $file_name`;
どんな提案でも、なぜphpを実行しても何も起こらないのか、完全に途方に暮れるのに役立ちます。ありがとう!
解決策を見つけました。実行権限を持つ 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 バイナリへのパス全体を含めます。ファイル名にスペースが含まれる場合は、一重引用符を使用してください。
コマンドが実行されない理由の詳細がある場合は、Web サーバーのログを確認してください。
実際の行が次のとおりであることを確認してください。
$output = shell_exec(`apktool d -f $file_name`);
また、php.ini ファイルがsafe_mode
オンになっていないか、ディレクティブshell_exec
にリストされていないこと。disable_functions