Разрешения Apache для выполнения функции exec - PullRequest
1 голос
/ 16 декабря 2010

Я пытался запустить этот php-код в CentOS:

<?php

$command = "diff file1 file2 > file3";
exec($command, $output, $error_code);

if ($error_code != 0) {
    echo "Error: $error_code";
}

?>

И это всегда повторяет «Ошибка: 1». Ошибка 1: «Операция не разрешена» http://www.pegasoft.ca/resources/boblap/99_b.html. Похоже, у apache нет прав на определенные действия, верно? Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Oh> _ __ _ <</p>

У меня была эта строка в конце моего сценария:

exec("rm -f /var/local/out/upload/example_word/word/diff.diff");

Файл был создан, а затем удален ... Вот почему я его никогда не видел.К сожалению.

1 голос
/ 16 декабря 2010

Я думаю, это потому, что вы не используете правильную команду.Вы запускаете команду $ command, как в терминале, поэтому вам нужно добавить команду, указывающую, что у вас есть разрешение.Я думаю, что на CentOS это су.Например, в Ubuntu вы должны выполнить sudo -command -.

Поэтому попробуйте добавить su перед diff.

Edit:

Вы должны проверить здесь для правильного использованиясу: http://wiki.centos.org/TipsAndTricks/BecomingRoot

...