在php代码下调用pg_dump时出现空输出

时间:2011-05-30 11:09:08

标签: php postgresql pg-dump

我需要在php中通过pg_dump进行转储,所以我有这样的函数:

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 个答案:

答案 0 :(得分:3)

如果您在标准的Web服务器设置下运行PHP,那将无法运行,因为它将在Web服务器用户的上下文中运行,因此sudo不会让您更改用户上下文。

如果这是一个脚本,你将不得不调整sudo来运行 pg_dump命令作为用户的无密码sudo权限,否则你的sudo命令会提示输入密码并破坏您的自动化过程。