我使用Codeigniter备份mysql表并将sql文件写入本地webserver的htdocs / application / backups目录。
我希望将该目录镜像到我的远程网络服务器(dreamhost备份用户帐户)但它无法正常工作,我没有看到远程网络中的sql文件。目录
我正在使用CI的FTP库,它的mirror()
功能将我本地备份目录的内容复制到我的远程服务器。
在我的数据库备份模型中,我设置了要在脚本中使用的变量:
private $local_folder = 'my_directory/';
private $server_folder = 'my_server_directory/';
private $server_credentials = array(
'hostname'=>'my.hostname.com',
'username'=>'my_username',
'password'=>'my_password'
);
同样在数据库备份模型中,我有镜像功能:
function mirror(){
$this->load->library('ftp');
$this->ftp->connect($this->server_credentials);
$result = $this->ftp->mirror($this->local_folder,$this->server_folder);
var_dump($result); //shows "true"
$this->ftp->close();
}
我从备份函数调用mirror()
。 sql文件由备份函数在本地创建和存储,但本地文件夹未镜像到Web服务器。
远程备份目录权限为“777”,$this->ftp->list_files
和$this->ftp->mkdir()
的测试运行正常。
有关文件无法上传的任何想法
答案 0 :(得分:1)
我正在回答我自己的问题,因为问题是我自己的无知。
private $server_folder = 'my_server_directory/';
应该是
private $server_folder = '/my_server_directory/';
我发誓我在解决问题的同时尝试了这种语法,但我必须改变别的东西,同时打破了镜像,隐藏了我的答案。
感谢您的评论和答案@Damien Pirsy和@ Edinho Almeida。
答案 1 :(得分:0)
如果
$this->ftp->mkdir()
工作正常,我确定你的权限设置没问题。
如果
$this->ftp->list_files()
工作正常,我确信您的连接设置也可以。
我猜你的SQL备份文件是以点
开头的见
system/libraries/Ftp.php at lines 547 and 551