我有一个使用exec()执行程序的php程序。 Exec()返回127作为$ return参数。
这是PHP代码:
$exec = exec('./scan', $output, $return);
echo "<br />-----whoami-----<br />";
echo exec('whoami');
echo "<br />-----$exec------<br />";
echo $exec;
echo "<br />-----$output----<br />";
print_r( $output );
echo "<br />-----$return ---<br />";
print_r( $return );
我得到了回复:
-----whoami-----
apache
------Exec------
------output----
Array ( )
------return ---
127
我知道exec()正在我的设置中工作,因为我可以调用一个python脚本,该脚本与我尝试在上面打开的文件位于同一文件夹中,具有完全相同的权限。例如这段代码:
$exec = exec('python test.py', $output, $return);
echo "<br />-----whoami-----<br />";
echo exec('whoami');
echo "<br />-----$exec------<br />";
echo $exec;
echo "<br />-----$output----<br />";
print_r( $output );
echo "<br />-----$return ---<br />";
print_r( $return );
返回:
-----whoami-----
apache
------Exec------
test.py runs!
------output----
test.py runs!
------return ---
1
知道可能会发生什么吗?我可以运行python程序,但没有任何工作,但“。”我尝试了其他exec命令,如“ls”,它们运行正常。我已经检查了illegal command error code 127 in php exec function,并关闭了php的安全模式。可能是因为Apache被chrooted并且没有访问此文件的权限?我该如何解决这个问题?