2014-07-23 25 views
4

我在使用CSV文件导入产品时遇到问题。500 CSV导入时出现内部服务器错误(含大图片)

我试图上传一个包含约1400个产品的CSV文件。 。 。大多数有三张图片左右。 ..。但是这些图片在3-4兆字节时相当大。到目前为止,在测试时,我只尝试从包含5个项目的CSV文件导入。

我原来在prestashop中出现错误,指示我的产品的图片无法复制。这些产品是进口的,但没有照片。我研究了这一点,发现需要更新PHP.INI文件。我曾与下列参数做到了这一点:

<?php 
;;;;;;;;;;;;;;;;;;; 
; Resource Limits ; 
;;;;;;;;;;;;;;;;;;; 

memory_limit = 256M 
max_execution_time = 120 
max_input_vars = 3000; 
suhosin.post.max_vars = 3000; 
suhosin.request.max_vars = 3000; 


?> 

我的PHP信息文件是在这里:www.gbamedical.com/info.php

现在,我得到一个500内部服务器错误。在错误日志的实际错误是:

[星期二07月22日23点21分19秒2014] [5435820] [fcgid:警告] [客户端97.115.27.65:60638] mod_fcgid:在读取数据超时120秒的referer http://www.gbamedical.com/shoppe/05ad01min05/index.php?controller=AdminImport&token=62fefdea84f98bf2f436dafc040b6c1f

[星期二07月22日23时21分19秒2014] [5435820] [芯:错误] [客户端97.115.27.65:60638]标头前脚本输出结束:的index.php,引荐http://www.gbamedical.com/shoppe/05ad01min05/index.php?controller=AdminImport&token=62fefdea84f98bf2f436dafc040b6c1f

我在做什么错?我已经尝试过使用较小的图片,但它可以正常工作,但我使用的供应商的数据馈送没有1400个项目的较小图片,并且使它们变得更小是MONSTER的一项工作。

在此先感谢您提供的任何帮助。

特雷弗

+4

如何被存储在一个CSV图像?我希望一个csv只有contian文字 –

+0

@ Dagon你包含一个图像的URL作为csv的一个字段:http://doc.prestashop.com/display/PS16/CSV+Import+Parameters – rsanchez

+0

@Dagon是啊。 。 。对不起。 。 。我应该澄清。 CSV文件指向每个产品图像的URL。 –

回答

0

为了您的测试环境中,将图像添加到本地服务的URL和更新您的CSV以反映这种变化

http://localhost/importimages/image_name.jpg 

然后做你的生产环境类似的东西。

0

我的第一个想法是,set_time_limit(0)会解决这个问题,但流操作不计算在执行时间(除非在窗口),所以根据你如何从prestashop下载文件,它可能不会计算执行时间我猜fopen()不会)。

显然,这是一个fcgid特定的问题。您需要(取决于您的版本)将此添加到您的fcgid.conf:

FcgidIOTimeout 180 

它曾经是IPCCommTimeout。该值以秒为单位(手册为here)。希望这有助于。

0

看看这个帖子:

https://serverfault.com/questions/80929/disable-the-timeouts-on-apache-httpd-and-fastcgi

你需要传递给FastCGI进程的理由是:-idle-timeout 360

可以调整值(这里:360),以满足您的需求

调整/etc/apache2/mods-enabled/fastcgi.conf。将前面陈述的论点附加到FastCgiExternalServer

我的配置:

<IfModule mod_fastcgi.c> 
    AddType application/x-httpd-fastphp5 .php 
    Action application/x-httpd-fastphp5 /php5-fcgi 
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi 
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 360 
    <Directory /usr/lib/cgi-bin> 
     Require all granted 
    </Directory> 
</IfModule> 

这应该让你的Apache等待更长时间才能FastCGI进程来完成。希望这可以帮助

0

我有同样的问题。我使用Centos 6和fcgi。我设置/etc/httpd/conf.d/fcgid.conf

MaxRequestLen 1073741824 
FcgidBusyTimeout 6000 

当我导入CSV我的导入过程的工作作为后台进程

相关问题