Drupal PHP - 仅在擦除文件上传和保存时出现内部错误


Drupal PHP - Internal Error only when erasing file upload and saving

我遇到以下问题:

我可以创建一个新节点,我有两个上传字段,用于最初可以上传的图像,没有问题。

我可以返回并编辑节点内容并保存,也没有问题。

当我尝试擦除任一图像附件并保存节点时,出现 500 错误(服务器内部错误)。查看PHP日志,这就是我得到的:

[Wed Apr 25 23:34:51 2012] [warn] [client 50.138.84.100] mod_fcgid: stderr: PHP Fatal error: Call-time pass-by-reference has been removed in ../www/sites/all/modules/video/transcoders/video_ffmpeg.inc on line 49, referer: https://www.uleru.com/node/xxx/edit

这在几周前就已经工作了,最后一个主要的变化是一些软件包的服务器升级(运行 Debian)。不确定这是否是阴谋者,但也许有些人见过类似的东西?

-------------------------------------------编辑--------------------------------------------------
在那个包上做一个节目,这正是发生的事情,ffmpeg 被 libav-tools 弃用了。 我试图记住在Drupal管理中更改ffmpeg路径的位置。 考虑回滚 =/

这看起来像服务器升级包括切换到 PHP 5.4("调用时按引用传递"在 5.3 中被弃用,并在 5.4 中删除 - 请参阅按引用传递)。

因此,这可能是 video_ffmpeg.inc 中的一个错误,因为它尝试通过引用传递参数,它只能通过在调用的函数签名中将参数声明为引用来执行此操作。

有关小示例,请参阅 PHP 5.4 调用时按引用传递 - 是否可以轻松修复?

ffmpeg 路径位于ffmpeg_wrapper配置页面中,假设它的工作方式与我几个月前在 d6 中使用的路径类似。

我通过使用函数proc_open而不是exec来解决此问题。