imagefill()导致'脚本标题过早结束'

时间:2014-01-28 20:53:39

标签: php laravel laravel-3

我发帖是因为经过几个小时的搜索后我完全感到困惑。这是交易。我的Laravel应用程序使用PHP Image Workshop软件包。一切似乎都运行正常,除非我尝试进行resizeInPixel()调用或cropInPixel()调用(或类似调用),否则服务器会抛出内部服务器错误。如果我调查错误日志,我会看到:

Premature end of script headers: index.php

当我使用调整大小和裁剪相关的方法(即图像处理)时,会发生。我可以initFromPath()没有问题,我可以毫无问题地使用save()方法。只有图像处理方法会导致内部服务器错误。

我还在网上看到,这可能是suphp_log文件超过2GB的结果。我已经跟踪并清理了该文件,但无济于事。

欢迎任何想法!即使他们只是一般“你试过......”。

更新

我已将其缩小到Image Workshop代码中的特定行。这一行导致错误:

 imagefill($image, 0, 0, $color);

此外,仅当使用imagecolorallocatealpha创建颜色时才会出现此错误,而不是仅使用imagecolorallocate创建颜色时。

1 个答案:

答案 0 :(得分:0)

Liquidweb.com解决此问题有一些很好的提示。我的钱在#2上(见粗体文字)因为你在进行图像处理时遇到了错误:

  

有时,在执行脚本时,您会看到类似于以下内容的错误:

     

Premature end of script headers: /home/directory/public_html/index.php

     

发生此错误是因为服务器需要一组完整的HTTP标头(一个或多个后跟一个空行),并且它不会获取它们。这可能是由以下几点引起的:

     
      
  1. 升级或降级到不同版本的PHP可以在httpd.conf中留下剩余选项。在命令行中使用php -v检查当前版本的PHP,并在httpd.conf中搜索提及另一个版本的任何行。如果找到它们,请将它们注释掉,提取httpd.conf并重新启动apache。

  2.   
  3. 如果脚本因资源限制而被终止,httpd.conf中的RLimitCPU和RLimitMEM指令也可能导致错误。

  4.   
  5. suEXEC,mod_perl或其他第三方模块中的配置问题通常会干扰脚本的执行并导致错误。如果这些是原因,则可以在apache error_log中找到与详细信息相关的其他信息。

  6.   
  7. 如果suphp的日志大小达到2GB或更大,您可能会看到脚本标头的过早结束错误。查看日志包含的内容并将其gzip或null。重新启动apache,然后处理suphp日志带来的任何问题。 suphp日志位于:/ usr / local / apache / logs / suphp_log

  8.   
  9. 脚本的权限也可能导致此错误。 CGI脚本只能访问httpd.conf中指定的用户和组所允许的资源。在这种情况下,错误可能只是指出未经授权的用户正在尝试访问脚本。
  10.   

<强>更新


在评论中获得更多信息之后,我仍然觉得这是与记忆相关的事情。

根据此SO维基:About gdlib

  

警告:图像功能非常耗费内存。一定要将memory_limit设置得足够高

你的PHP memory_limit 是什么?你可以把它调高一点吗?