exec() と shell_exec を使用して php で複数のコマンドを実行しようとしていますが、null 値を取得してはいけませんが、何も起こっていません (コマンドラインで以下の文字列をコピーして貼り付けると、正常に動作します)必要な仕事を達成する)これは私が使用しているコマンドです:
$command = "cd /../Desktop/FolderName;";
$command .= 'export PATH=$PATH:`pwd`;';
$command .= 'Here i execute a compiler;';
そして、escapeshellcmd() を使用します
$escaped_command = escapeshellcmd($command);
それから
shell_exec($escaped_command);
私が間違っていることと、escapeshellcmd()の代わりにescapeshellarg()も試しましたか?
解決策: 問題は、他の所有者に対する実行コンパイラの許可が無効であり、これが問題でした。PHPで関数を使用している場合exec()
、ファイルの所有者はwww-dataになるため、ubuntuのACLまたはLinuxベースのオペレーティングシステムからwww-dataの許可を与える必要があります(これを行うことで所有者を知ることができますexec('whoami')
)、または実行する必要があるファイルによって。