我做一个在线编程的一个页面,要用到系统调用exec来取得用户写的程序的运行后的输出值,写的脚本基本如下:$command = "/var/program/userprogram";
exec($command, $data);
print_r($data);(/var/program/)不是web的根目录
这个是经过简化的,我su 到apache用户后在命令行下执行php test.php能够成功的输出程序的执行数据,但是在WEB下去访问这个文件,却很奇怪的出现Array ( [0] => sh: /var/program/userprogram: Permission denied ) 。我很纳闷,同样的代码,在我自己的电脑上是没有问题的,不知道是不是因为有什么安全配置阻止了在其他目录下执行非系统命令的权限。另外,我把那个userprogram文件放到web根目录下,运行也是没问题的
exec($command, $data);
print_r($data);(/var/program/)不是web的根目录
这个是经过简化的,我su 到apache用户后在命令行下执行php test.php能够成功的输出程序的执行数据,但是在WEB下去访问这个文件,却很奇怪的出现Array ( [0] => sh: /var/program/userprogram: Permission denied ) 。我很纳闷,同样的代码,在我自己的电脑上是没有问题的,不知道是不是因为有什么安全配置阻止了在其他目录下执行非系统命令的权限。另外,我把那个userprogram文件放到web根目录下,运行也是没问题的
在apache下用的是apache 进程帐号的权限