PHP Exec权限被拒绝

时间:2012-04-02 15:04:57

标签: php linux compiler-construction permissions exec

我正在尝试使用PHP编译文件。 PHP代码是......

if(isset($_POST['submit'])){
    $filename= "source/source.c";
    $fp = fopen($filename, "w");
    fwrite($fp, $_POST['answer']);      
    // Now compile...       
    echo system("gcc $filename 2>&1");


}

我的输出为

/usr/bin/ld: cannot open output file a.out: Permission denied collect2: ld returned 1 exit status 1

我不知道代码或权限有什么问题。我使用LAMP Stack在Ubuntu 11.04上。 我已经尝试将文件夹chown到www-data并chmoding到777。但我仍然得到同样的错误。

高度赞赏任何有关做什么的指导:)

非常感谢,

最好的问候

Aman Gautam

2 个答案:

答案 0 :(得分:2)

检查输出目录的权限,我看到$ _POST,所以看起来是运行脚本的apache,检查apache是​​否可以在目录中写入,还覆盖现有的a.out。

答案 1 :(得分:1)

如果您已经检查了权限并且它是777,但仍然无法正常工作,您可以检查系统中是否有app armor或se Linux处于活动状态。要禁用app armor:

  

可以禁用AppArmor,并通过输入卸载内核模块   以下内容:

     

sudo /etc/init.d/apparmor stop

     

sudo update-rc.d -f apparmor remove

     

重新启动