如何在ubuntu中使用php脚本编译c程序

如何在ubuntu中使用php脚本编译c程序,php,c++,gcc,Php,C++,Gcc,我正在开发一个在线测试系统,通过它我们可以进行在线编程竞赛。 出于同样的原因,我希望使用诸如system()、shell\u exec()、exec()等函数从php脚本调用C编译器,但该函数没有创建.out文件 当我使用终端编写g++a.cpp-oa时,它工作了 但这是行不通的 system(“g++a.cpp-oa”,$as)//a、 cpp位于www文件夹中 PHP作为不同的用户运行,因此可能没有执行g++命令的权限 要使PHP可以访问该命令,请尝试以下操作: sudo chmod o+x

我正在开发一个在线测试系统,通过它我们可以进行在线编程竞赛。 出于同样的原因,我希望使用诸如
system()
shell\u exec()
exec()
等函数从php脚本调用C编译器,但该函数没有创建.out文件 当我使用终端编写
g++a.cpp-oa
时,它工作了

但这是行不通的

system(“g++a.cpp-oa”,$as)//a、 cpp位于www文件夹中

PHP作为不同的用户运行,因此可能没有执行
g++
命令的权限

要使PHP可以访问该命令,请尝试以下操作:

sudo chmod o+x /usr/bin/g++
注意:
/usr/bin/g++
有时可以是指向同一目录中另一个可执行文件的符号链接,因此更改其权限不会起任何作用(默认情况下,符号链接为777)。如果上述命令无法解决问题,您能否将此命令的输出添加到问题中,这将显示它指向的位置:

ls -al /usr/bin/g++
在我的系统上,这个输出

lrwxrwxrwx 1 root root      7 2011-08-10 14:52 /usr/bin/g++ -> g++-4.5
这意味着
g++
本质上是
g++-4.5
的别名,因此我将在
g++-4.5
上允许“其他”执行权限:

sudo chmod o+x /usr/bin/g++-4.5

我的问题仍未解决命令的输出是“lrwxrwx 1 root root 7 Mar 14 2012/usr/bin/g++->g++-4.6-rwxr-xr-x 1 root 357312 Apr 16 2012/usr/bin/g++-4.6”。在您的情况下,运行
sudo chmod o+x/usr/bin/g++-4.6
。我为我的问题添加了一个更通用的解决方案。我试过了,但没有成功。p、 s我已经使用终端运行了上述代码,然后刷新了php文件(index.php),如果我必须以其他方式执行,它不会创建一个.out文件,那么请提及,因为我是一个新手。使用绝对路径感谢它,例如,
system('g++/var/www/a.cpp-o/tmp/a.out',$as)。如果这样做有效,您可以继续更改输出位置,但请确保“other”具有对目录的写访问权限。被否决的人能否给出原因,以便我改进我的答案?