我在尝试执行
exec('mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql' ,$output, $return_var);我也试过,
exec('mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql');但是$output是空的,$return_var是2
我在文件/etc/sudoers中更改了apache用户的权限
#User privilege specification
www-data ALL=(ALL:ALL) NOPASSWD:ALL另外,以下内容也在cmd上运行
mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql有人能帮我吗?
发布于 2016-05-19 19:23:05
我宁愿把它作为评论而不是回答,但我建议使用popen,因为它可能提供更有用的信息,为什么您的命令失败。
全功能签名:
popen (string $command, string $mode)
它的工作方式类似于fopen,包括模式。在您的情况下,您可能希望使用'r'作为您的模式。这个函数像fopen那样返回一个句柄,所以您可以对数据进行fread。别忘了在你做完后再做pclose!
要捕获任何错误输出(函数返回句柄,即使命令失败),请在命令后面添加2>&1 (包括前导空间)。之后,您可能可以删除它,它所做的就是将错误重定向到输出。
资料来源:
https://stackoverflow.com/questions/37332063
复制相似问题