这段代码在PHP中不会同步“测试”文件夹。在php中使用rsync同步远程服务器文件夹和本地服务器文件夹?
PHP
exec('/usr/bin/rsync -a /etc/test [email protected]:/etc/test');
但壳
rsync -a /etc/test/ [email protected]:/etc/test/
的工作。所以我需要通过使用php文件来同步这些“测试”文件夹。我该怎么做?
这段代码在PHP中不会同步“测试”文件夹。在php中使用rsync同步远程服务器文件夹和本地服务器文件夹?
PHP
exec('/usr/bin/rsync -a /etc/test [email protected]:/etc/test');
但壳
rsync -a /etc/test/ [email protected]:/etc/test/
的工作。所以我需要通过使用php文件来同步这些“测试”文件夹。我该怎么做?
首先,您需要检查您是否需要成为root或(sudo用户)才能运行rsync。如果是,那么 exec命令将仅在php-cli中的相同用户(不是由apache用户的浏览器)上运行时才起作用。
对不起,兄弟,我没有明白你的意思。你可以解释一下吧 – 2013-04-29 09:43:43
你将哪个用户登录到shell中运行rsync。如果它是root用户或任何具有sudo权限的权限用户,那么这个rsync命令可能不适用于当php脚本从浏览器运行时正在工作的apache/www-data用户。 – 2013-04-29 09:46:50
作为根我要去登录 – 2013-04-29 09:51:36
我认为这也是我的问题。刚刚发现http://stackoverflow.com/a/9204543/1862107。是这个问题吗? – 2013-04-29 09:49:36