2013-12-10 131 views
0

我想在linux服务器上编译一个c/C++代码。我正在使用PHP。假设我正在接收用户的源代码,然后使用它创建临时文件,然后使用gcc,我只是试图制作一个简单的可执行文件。要做所有这些我正在做的下面的代码,但它没有产生任何输出。那么如何在linux服务器上运行一个linux命令,我的意思是下面的代码就ok了。如果是,那么为什么它不产生任何名为可执行的“最新”如何从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"); 
+0

什么'$结果=了shell_exec(“GCC -o最新MYFILE”)后,认为执行其方案; var_dump($ result);'写? –

回答

1

我认为一个好的猜测是gcc是不是在你的PHP路径,但刚刚从您的通话shell_exec可能会告诉你输出即:

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

尝试使用与gcc

1

绝对路径至少,重命名MYFILE到myfile.c文件,或GCC将无法识别它作为C源代码。

您是否检查myfile是否被写入?如果不是,这可能是一个权限问题。

顺便说一句,有恶意用户的乐趣,如果你编译它:-)

+0

+1为安全问题 – Lucio