2012-04-30 63 views
2

這個問題我有以下內部錯誤:Drupal的PHP - 只有當刪除文件上傳和保存

我可以創造一個新的節點,我有可以開始上傳沒有問題的圖像兩種上傳領域。

我可以回去編輯節點內容並保存,也沒問題。

當我嘗試擦除圖像附件並保存節點時,出現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 Admin中更改ffmpeg路徑的位置。考慮回滾=/

回答

3

這看起來像服務器升級包括切換到PHP 5.4(「呼叫時傳遞引用」在5.3中已棄用,並在5.4中刪除 - 請參閱Passing by Reference)。

所以這可能是video_ffmpeg.inc中的一個錯誤,因爲它試圖通過引用傳遞一個參數,它只應該通過將參數聲明爲被調用函數簽名中的引用來做。

對於小例如,參見PHP 5.4 Call-time pass-by-reference - Easy fix available?

+0

是的,它不贊成使用libav-tools並打破ffmpeg。呸!我要發郵件給模塊的開發人員,看看我們能做些什麼。 – Tony

+0

如果有人碰到這個障礙,我就是這樣解決的。 升級到幻燈片6.x的-3.0(正在運行6.x的-2.4) 在模塊/視頻/代碼轉換器/ video_ffmpeg.inc有一行讀取: 通路($命令,&$ return_var);刪除'&'標誌,它應該解決您的問題。 Henrik歐寶致意指引我走向正確的方向。 – Tony

0

ffmpeg路徑位於ffmpeg_wrapper配置頁面中,假設其工作方式與我在幾個月前在d6中使用的路徑相似。

0

我固定此通過使用函數proc_open代替EXEC鍵。