Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php exec mysqldump不';行不通_Php_Mysql_Shell - Fatal编程技术网

php exec mysqldump不';行不通

php exec mysqldump不';行不通,php,mysql,shell,Php,Mysql,Shell,我正在尝试使用exec()从我的php文件运行mysqldump。文件位于我的网站的www目录中,我正在通过浏览器访问它。但是,无论我尝试什么,我都不会得到任何结果,也不会创建任何sql文件 这是我的命令: $export = exec("/usr/bin/mysqldump -u MY_USERNAME -pMY_PASS DATABASE_NAME products > /path/to/www/directory/sync/products.sql"); exec()已启用。同步目

我正在尝试使用exec()从我的php文件运行mysqldump。文件位于我的网站的www目录中,我正在通过浏览器访问它。但是,无论我尝试什么,我都不会得到任何结果,也不会创建任何sql文件

这是我的命令:

$export = exec("/usr/bin/mysqldump -u MY_USERNAME -pMY_PASS DATABASE_NAME products > /path/to/www/directory/sync/products.sql");
exec()已启用。同步目录权限为777

如果我使用相同的命令,但添加
$output,$return\u var
,如下所示:

$export = exec("/usr/bin/mysqldump -u MY_USERNAME -pMY_PASS DATABASE_NAME products > /path/to/www/directory/sync/products.sql", $output, $return_var);
$output
是一个空数组,
$return\u var
回显127

mysqldump的路径正确:

root@server [~]# which mysqldump
/usr/bin/mysqldump
root@server [~]#
如果我从控制台运行该命令,它将正常工作,并在我的同步目录中创建新文件


有人能告诉我我做错了什么,我在这里错过了什么吗?在我们移动到新服务器之前,脚本一直运行得很好…

我一直在到处搜索,偶然发现了解决我问题的方法

而不是使用

$export = exec("/usr/bin/mysqldump -u MY_USERNAME -pMY_PASS DATABASE_NAME products > /path/to/www/directory/sync/products.sql");
我现在正在使用它,这很有效

$export = exec('mysqldump -u MY_USERNAME -pMY_PASS DATABASE_NAME products -r "/path/to/www/directory/sync/products.sql"');
使用路径
mysqldump
没有任何区别。使用
选项
(在本例中为
-r
)为我解决了这个问题,尽管我真的不明白为什么原来的解决方案不起作用


也许值得一提-我注意到我不能使用标准的
mysql-u-pdb
-运行该命令只是向我显示帮助说明,就像我运行
mysql-?
。我不确定这是否特定于我和我的服务器,但上述解决方案可能会帮助处于类似情况的人。

非零退出代码表示失败。您确定您的Web服务器用户有权在其中写入文件吗?@MarcB我知道这表示失败。。。这就是它的美妙之处——如何调试它?至于Web服务器用户写入文件的权限,是否应该使用同步目录上的CHMOD 777进行排序?如果没有,我该怎么办?