пустой вывод при вызове pg_dump по коду php - PullRequest
1 голос
/ 30 мая 2011

Мне нужно сделать дамп через pg_dump в php, поэтому у меня есть такая функция:

function fnDump()
{
    exec("/usr/local/bin/sudo -u pg_user /usr/local/bin/pg_dump mon_alarm > /usr/home/user/monitor_test/renew_db/mon_alarm.sql",$out);
    var_dump($out);
}

Проблема в том, что файл mon_alarm.sql пуст.Но когда я выполняю эту команду через командную строку, все работает нормально.Что я должен изменить, чтобы создать дамп в php?

1 Ответ

3 голосов
/ 30 мая 2011

Если вы используете PHP в стандартной настройке веб-сервера, это не сработает, потому что он будет работать в контексте пользователя веб-сервера, поэтому sudo не позволит вам так изменить пользовательский контекст.

Если это сценарий, вам нужно настроить sudo для запуска only команда pg_dump в качестве разрешений sudo для пользователя без пароля, в противном случае ваша команда sudo запросит пароль и пароль ваш автоматизированный процесс.

...