Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 导入带有大型照片的CSV时出现500内部服务器错误_Php_Csv_Prestashop 1.6 - Fatal编程技术网

Php 导入带有大型照片的CSV时出现500内部服务器错误

Php 导入带有大型照片的CSV时出现500内部服务器错误,php,csv,prestashop-1.6,Php,Csv,Prestashop 1.6,我在导入带有CSV文件的产品时遇到问题 我正在尝试上载一个CSV文件,其中包含大约1400个产品。大多数都有三张左右的照片。但是这些图片相当大,只有3-4兆字节。到目前为止,在测试过程中,我只尝试过从包含5项的CSV文件导入 我最初在prestashop中遇到一个错误,表明无法复制我产品的图片。产品是进口的,只是没有照片。我对此进行了研究,发现PHP.INI文件需要更新。我已使用以下参数完成此操作: <?php ;;;;;;;;;;;;;;;;;;; ; Resource Limits ;

我在导入带有CSV文件的产品时遇到问题

我正在尝试上载一个CSV文件,其中包含大约1400个产品。大多数都有三张左右的照片。但是这些图片相当大,只有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内部服务器错误。错误日志中的实际错误如下所示:

[星期二2014年7月22日23:21:19][5435820][fcgid:warn][client 97.115.27.65:60638]mod_fcgid:读取数据超时120秒,请参阅

[星期二7月22日23:21:19 2014][5435820][core:error][client 97.115.27.65:60638]标题前的脚本输出结束:index.php,referer

我做错了什么?我曾尝试过更小的图片,但我使用的供应商数据源中没有1400个项目的更小图片,将它们变小是一项艰巨的任务

提前感谢您可能提供的任何帮助


Trevor

对于您的测试环境,将图像添加到本地服务的url,并更新您的csv以反映该更改

http://localhost/importimages/image_name.jpg
然后对您的生产环境执行类似的操作。

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

显然,这是fcgid特有的问题。您需要(取决于您的版本)将以下内容添加到fcgid.conf中:

FcgidIOTimeout 180
它曾经是一个超时。该值以秒为单位(手册以秒为单位)。希望这能有所帮助。

看看这篇文章:

需要传递给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>

AddType应用程序/x-httpd-fastp5.php
动作应用程序/x-httpd-FASTP5/php5 fcgi
别名/php5 fcgi/usr/lib/cgi-bin/php5 fcgi
FastCgiExternalServer/usr/lib/cgi-bin/php5 fcgi-socket/var/run/php5-fpm.sock-通过头授权-空闲超时360
要求所有授权

这会让您的apache等待fastcgi进程完成的时间更长。希望这有帮助

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

MaxRequestLen 1073741824
FcgidBusyTimeout 6000

当我导入csv时,我的导入过程作为后台过程工作

图像如何存储在csv中?我希望csv只能继续text@Dagon您可以将图像的url作为csv的一个字段:@Dagon yea。很抱歉我应该澄清一下。CSV文件指向每个产品的图像的URL。@rsanschez如何解决此错误?