如何从php运行linux命令


How to run linux command from php

我想在linux服务器中编译一个c/c++代码。我使用的是php。假设我从用户那里收到一个源代码,然后用它制作一个临时文件,然后使用gcc,我只是想制作一个简单的可执行文件。为了完成所有这些,我正在执行以下代码,但它没有产生任何输出。因此,如何在linux服务器中从php运行linux命令,我的意思是以下代码可以。如果可以,那么为什么它没有生成任何名为"最新"的可执行文件

$received_code = $_POST['myc'];

        $fp = fopen("myfile", "w") or die("Couldn't open file for writing!");
        fwrite($fp, $received_code) or die("Couldn't write values to file! ...Compilation Error");
        fclose($fp);
                shell_exec("gcc -o latest myfile");

我认为一个很好的猜测是gcc不在您的PHP PATH中,但仅仅从shell_exec调用中获得输出可能会告诉您:

$output = shell_exec('gcc -o latest myfile');
echo "<pre>$output</pre>";

尝试使用gcc 的绝对路径

至少,将myfile重命名为myfile.c,否则gcc不会将其识别为c源代码。

你检查过我的文件是否被写入了吗?如果没有,可能是权限问题。

顺便说一句,如果你想在编译后执行恶意用户的程序,那就和他们一起玩吧:-)