【发布时间】:2012-04-02 15:04:56
【问题描述】:
我正在尝试使用 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 。但我仍然遇到同样的错误。
非常感谢任何关于做什么的指导:)
已经谢谢了,
最好的问候
阿曼·高塔姆
【问题讨论】:
-
专门检查 a.out 的权限。同样,一旦您执行
chmod,请再次使用ls -l进行验证 -
你正在通过 gcc 编译用户输入?
-
我希望这只是一个个人项目,而不是面向公众的系统。如果您打算公开访问,这是一个主要的安全问题。
-
@Pawan:是的,我仔细检查了它:(它属于 www-data 和 777 权限
-
@Joedanm:是的。我有更好的选择来使用 Web 界面进行编译吗? :)
标签: php linux compiler-construction permissions exec