标签:ftp 站点 userid 目录 dedecms 发布 php 远程
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');
}
其他远程相关的修改与此类似。
2.远程时不显示配置好的ftp站点
经过排查,是因为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>";
}
标签:ftp,站点,userid,目录,dedecms,发布,php,远程 来源: https://blog.csdn.net/byboy8/article/details/121989387
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。