CSV导入w /大照片500内部服务器错误

时间:2014-07-23 23:25:10

标签: php csv prestashop-1.6

我在导入带有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内部服务器错误。错误日志中的实际错误如下:

  

[Tue Jul 22 23:21:19 2014] [5435820] [fcgid:warn] [client 97.115.27.65:60638] mod_fcgid:在120秒内读取数据超时,referer http://www.gbamedical.com/shoppe/05ad01min05/index.php?controller=AdminImport&token=62fefdea84f98bf2f436dafc040b6c1f

     

[Tue Jul 22 23:21:19 2014] [5435820] [core:error] [client 97.115.27.65:60638]标题前的脚本输出结束:index.php,referer http://www.gbamedical.com/shoppe/05ad01min05/index.php?controller=AdminImport&token=62fefdea84f98bf2f436dafc040b6c1f

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

提前感谢您提供的任何帮助。

特雷弗

3 个答案:

答案 0 :(得分:0)

对于您的测试环境,将图像添加到本地提供的网址并更新您的csv以反映该更改

http://localhost/importimages/image_name.jpg

然后为您的生产环境做类似的事情。

答案 1 :(得分:0)

我的第一个想法是set_time_limit(0)会解决此问题,但流操作不计入执行时间(除非在Windows上),因此根据您从prestashop下载文件的方式,它实际上可能不会计入执行时间(我猜fopen()不会)。

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

FcgidIOTimeout 180

以前是IPCCommTimeout。该值以秒为单位(手册为here)。希望这会有所帮助。

答案 2 :(得分: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进程。希望这有帮助