PHP Exec 权限被拒绝

问题描述 投票:0回答:2

我正在尝试使用 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

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

非常感谢任何有关如何操作的指导:)

php linux permissions exec
2个回答
2
投票

检查输出目录的权限,我看到一个$_POST,所以似乎是apache运行了脚本,检查apache是否可以在该目录中写入,并且还覆盖现有的a.out。


1
投票

如果你检查了权限,权限是777,但还是不行,你可以检查你的系统中是否有apparmor或seLinux活跃。禁用应用程序装甲:

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

sudo /etc/init.d/apparmor 停止

sudo update-rc.d -f apparmor 删除

重启

© www.soinside.com 2019 - 2024. All rights reserved.