Я хочу скомпилировать код ac/c++ на сервере linux. Я использую 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 исходный код.
Вы проверяли, написано ли myfile? Если нет, это может быть проблема разрешения.
Кстати, получайте удовольствие от злонамеренных пользователей, если вы думаете о выполнении своей программы после ее компиляции :-)
$result = shell_exec("gcc -o latest myfile"); var_dump($result);
записывать?