Как запустить команду Linux из PHP

0

Я хочу скомпилировать код 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");
  • 0
    Что означает $result = shell_exec("gcc -o latest myfile"); var_dump($result); записывать?
Теги:
command

2 ответа

1

Я думаю, что хорошее предположение заключается в том, что gcc не находится в вашем PHP PATH, но просто получение результата из вашего вызова shell_exec, вероятно, скажет вам следующее:

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

Попробуйте использовать абсолютный путь к gcc

1

По крайней мере, переименуйте myfile в myfile.c или gcc не узнает его как c исходный код.

Вы проверяли, написано ли myfile? Если нет, это может быть проблема разрешения.

Кстати, получайте удовольствие от злонамеренных пользователей, если вы думаете о выполнении своей программы после ее компиляции :-)

  • 0
    +1 за проблему безопасности

Ещё вопросы

Сообщество Overcoder
Наверх
Меню