【问题标题】:Silverstripe throws Error 500 when exporting CSV fileSilverstripe 在导出 CSV 文件时抛出错误 500
【发布时间】:2018-05-03 01:33:05
【问题描述】:

尝试在我的 ModelAdmin 选项卡之一中导出 CSV 文件时,我在 Silverstripe 网站上遇到 HTTP 错误 500。但是,我注意到如果我过滤显示的结果,错误不会出现。仅供参考,未经过滤的结果有大约 8000 行数据。

我的服务器上是否有可以调整的特定设置来解决这个问题?

【问题讨论】:

  • 错误是什么?查看您的服务器错误日志。我在过滤时基于它的工作猜测是 PHP 内存不足。
  • @fubar,是的,这是内存问题。我和某人交谈过,建议只是升级服务器。
  • 根据可用的资源,您也许可以为 PHP 分配更多内存。

标签: php silverstripe


【解决方案1】:

您可以在多个位置设置可用 RAM:

1。 php.ini... 存储在 /etc/php/5.6/php.ini 之类的地方(不是确切的位置,这完全取决于您的系统)。使用:

php_value memory_limit 512M

...然后重启APACHE(sudo service apache2 restart)

2。在您的 htaccess 文件中:

php_value memory_limit 512M

3。在您的 mysite/_config.php 文件中: ini_set('memory_limit', '512M');

4。使用 Silverstripe API(参见 SS3 中的 framework/core/Core.php) - 添加到 mysite/_config.php 或其他在导出发生之前将运行的位置:

increase_memory_limit_to('512M');

如果你用 -1 替换 512M,你最终会得到无限的内存。

问题是您经常无法编辑 php.ini 并使用方法 2,3 或 4 设置它没有效果或由于某些其他原因而失败。最好通过将以下内容临时添加到您的 mysite/_config.php 文件来检查它是否真的有效:

die('current memory limit is: '.ini_get('memory_limit'));

希望对你有所帮助……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多