Dedecms突击收费,这样远程发布功能就香了起来,而远程发布中除了前人总结的坑,在调试中还发现了一些新坑,总结出来,供参考。
1.使用阿里云linux云虚拟主机做为远程站点发布提示无法创建目录和无法上传文件是因为程序是在根目录创建文件夹,而linux的站点根目录是/htdocs,这个目录下是不能创建目录的,所以要修改archives_add.PHP,archives_edit.等相关的文件中的目录位置,主要集中在这两个文件arc.listview.class.PHP,arc.archives.class.PHP中的function MakeHtml(),关联的就是ftp.class.PHP,修改如下:
//如果启用远程发布则需要进行判断
if($cfg_remote_site=='Y' && $isremote == 1)
{
//分析远程文件路径
$remotefile1 = str_replace(DEDEROOT, '', $TRUEfilename);
$remotefile = '/htdocs'.$remotefile1; //针对阿里云linux虚拟主机要目录为htdocs增加相应的上级目录,这样才不会提示无法创建目录。
$localfile = '..'.$remotefile1;
//创建远程文件夹
$remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);
$this->ftp->rmkdir($remotedir);
$this->ftp->upload($localfile, $remotefile, 'ascii');
}
其他远程相关的修改与此类似。
经过排查,是因为config.PHP中的function GetFtp()中的$userlist中使用的是userid字段,而getUserName()获取的是username字段,当你在增加用户时如果userid和username不同,就会导致这里不能显示站点,需要修改为里的getusername获取的应当是userid。
if(strstr($userlist,$cuserLogin->getUserName())
{
$select.="<option value='".$servurl.",".$servuser.",".$servpwd."'{$checked}>".$servname."</option>";
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。