繁体   English   中英

在 php 代码下调用 pg_dump 时为空 output

[英]empty output when calling pg_dump under php code

我需要通过 php 中的 pg_dump 进行转储,所以我有一个 function 像这样:

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 中创建转储?

如果您在标准网络服务器设置下运行 PHP,那将不起作用,因为它将在网络服务器用户的上下文中运行,因此 sudo 不会让您像那样更改用户上下文。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM