【Ecstore2.0】导出问题解决(未导出或导出文件为0字节)

简介: 如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在FTP上。 ECSTORE2.0采用了PHP的FTP模块,所以先确认你的环境是否安装了FTP模块,如果没有,安装并在PHP.INI中配置好模组路径。

如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在FTP上。

ECSTORE2.0采用了PHP的FTP模块,所以先确认你的环境是否安装了FTP模块,如果没有,安装并在PHP.INI中配置好模组路径。

功能文件:\app\importexport\lib\policy\ftp.php ,程序中使用 ftp_nb_put() 异步上传,这里告诉大家一个调试方法:在适当的位置加入 logger::info('debug info');  

然后查看 /data/logs/queue/日期.php 的日志输出,可以直接ssh用 tail -f  /data/logs/queue/日期.php 

 

【原理】利用PHP的 tempnam() 函数上传临时文件至 服务器的 /tmp目录,再用 ftp_nb_put() 将文件上传至FTP服务器。

【原因】有的FTP服务器需要使用被动模式PASV连接。

【解决方法】

  修改 \app\importexport\lib\policy\ftp.php 文件

    public function __construct(){
        $this->ftp_server = app::get('importexport')->getConf('ftp_server_setting');
        if(!$this->conn){
            $this->ftp_server['port'] = $this->ftp_server['port'] ? $this->ftp_server['port'] : 21;
            $this->conn = ftp_connect($this->ftp_server['host'],$this->ftp_server['port']);
            $this->bb=ftp_login($this->conn,$this->ftp_server['name'],$this->ftp_server['pass']);
			
        }
		if($this->ftp_server['pasv']=='true'){
			ftp_pasv($this->conn,$this->ftp_server['pasv']); //vmax 开启被动模式
		}
		
        $this->cd($this->ftp_server['dir']);
    }

  修改 \app\importexport\view\admin\ftp.html

        <p style="margin:20px 0"><{t}>被动模式(PASV):<{/t}>
          <input type="radio" name="pasv" value="true" <{if $ftp_server.pasv=='true'}>checked <{/if}>>开启
          <input type="radio" name="pasv" value="false" <{if $ftp_server.pasv=='false'}>checked <{/if}>>关闭        
		</p>

  懒一点的话,就只在FTP.PHP文件中加入 ftp_pasv($this->conn,true); 吧!

  最后附上我的FTP模块安装记录,供新手参考:

  841  cd lanmp/lanmp/php-5.3.27/ext/ftp
  846  phpize
  847  ./configure -with-php-config=/www/wdlinux/php/bin/php-config
  848  make
  849  make install
  850  ll /www/wdlinux/apache_php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
  851  vim /www/wdlinux/etc/php.ini
  852  service httpd restart

 

关于导入导出的问题解决:http://www.cnblogs.com/vmax/p/3699462.html

 

 

相关文章
|
程序员 C语言
C语言控制语句详解
C语言控制语句详解
233 0
|
数据采集 自然语言处理 数据挖掘
【NLP-新闻文本分类】1 数据分析和探索
文章提供了新闻文本分类数据集的分析,包括数据预览、类型检查、缺失值分析、分布情况,指出了类别不均衡和句子长度差异等问题,并提出了预处理建议。
231 1
|
机器学习/深度学习 存储 并行计算
CPU 和 GPU到底有啥区别?
【5月更文挑战第10天】
1569 2
CPU 和 GPU到底有啥区别?
|
移动开发 负载均衡 小程序
代驾app开发丨代驾系统开发玩法详情丨代驾系统开发网页版/H5/小程序及源码部署
**司机/代驾员端**:司机可以通过APP接收订单,查看订单详情、路线和导航,提供现场服务并进行确认。
|
弹性计算 TensorFlow 算法框架/工具
在ECS上使用eRDMA加速Tensorflow
eRDMA是8代ECS自带的RDMA加速功能,可以充分发挥RDMA的优势,提升应用的性能。本文将介绍如何使用eRDMA来加速Tensorflow,并实测benchmark下的性能。
608 0
|
机器学习/深度学习
简单通用:视觉基础网络最高3倍无损训练加速,清华EfficientTrain++入选TPAMI 2024
【5月更文挑战第30天】清华大学研究团队提出的EfficientTrain++是一种新型训练方法,旨在加速视觉基础网络(如ResNet、ConvNeXt、DeiT)的训练,最高可达3倍速度提升,同时保持模型准确性。该方法基于傅里叶谱裁剪和动态数据增强,实现了课程学习的创新应用。在ImageNet-1K/22K数据集上,EfficientTrain++能有效减少多种模型的训练时间,且在自监督学习任务中表现出色。尽管面临适应性与稳定性的挑战,EfficientTrain++为深度学习模型的高效训练开辟了新途径,对学术和工业界具有重要意义。
141 4
|
安全 网络安全 网络架构
黑客精神和白帽子
在当今数字化的世界里,黑客精神和白帽子的角色变得愈发重要。本文将探讨黑客精神的本质,介绍白帽子的概念和职责。
|
开发工具 git
Git tag管理
Git tag管理
278 0
|
物联网
【洛谷 P1464】Function 题解(递归+记忆化搜索)
该题目定义了一个递归函数$w(a,b,c)$,具有特定的终止条件和递归规则。当$a, b, c$任一值小于等于0或大于20时,函数有特殊返回值。否则,根据$a, b, c$的相对大小关系应用不同的递归计算。给定输入是一系列的三元组$(a, b, c)$,以$-1,-1,-1$结束。程序使用记忆化搜索优化递归调用,避免重复计算。样例输入输出展示了如何计算$w(1, 1, 1)$和$w(2, 2, 2)$。
187 0
每日一题——随机数索引
每日一题——随机数索引
每日一题——随机数索引