【问题标题】:Magento 2 - 500 internal server errorMagento 2 - 500 内部服务器错误
【发布时间】:2016-11-29 13:15:53
【问题描述】:

我有一个使用 curl 从另一个网站获取大量数据的脚本。

但一段时间后,我收到 500 内部服务器错误。 脚本没有问题,但一次没有获取大数据。

我也创建了控制台命令,如下所示

php bin/magento jet:sync_categories

并为它创建了必要的文件。

但从用户的角度来看这是不可行的。

有什么替代方法?

【问题讨论】:

    标签: magento-2.0


    【解决方案1】:

    为了更好的解决方案,您必须使用 shell_exec('php your-shell-file &');使用“&”作为在后台处理脚本的最后一个参数。

    【讨论】:

      【解决方案2】:

      对于 500 内部服务器错误;它通常是服务器端错误。如果您在本地工作,请转到 Apache php.ini 并将 max_execution_time=30 更改为最大时间范围,比如说 max_execution_time=300(秒)。如果你要去一个局外人,这需要时间,特别是如果你要发送大数据。

      如果问题仍然存在,则更改其他重要值,例如

        memory_limit=2G
        max_execution_time=300  
        post_max_size=8M
      

      希望它有效。

      【讨论】:

      • 谢谢。我正在创建扩展,因此不可能通知每个用户设置此服务器配置。有没有什么解决方案可以自己编码管理
      • 我想我理解你在做什么。进入数据库时​​稍微清理一下代码。我通常在 Magento 中看到的一个大问题是,程序员为每个 SKU 创建了一个循环进入数据库。想象一下,如果您有 500 个 SKU,则该流程占用的所有资源。例如。如果您必须在数据库中执行 SELECT,而不是执行类似 foreach($skus as $sku): SELECT * FROM table WHERE sku = "$sku" endforeach 之类的循环。 -----> 使用 IN 子句构建查询。就像---> SELECT * FROM table WHERE sku IN $skus。这些变化真的很重要。
      • 如果您无权访问数据库,因为您使用的是 API。将 timeout 属性设置为小于 30 秒,因为这通常是常规服务器的超时时间。
      猜你喜欢
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多