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

如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在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 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

1
2
3
4
<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
复制代码

转载于:https://www.cnblogs.com/CHEUNGKAMING/p/4262017.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值