2017-08-10 93 views
-1

shell_exec()在codeigniter中不工作。但是,這個命令在終端工作。 輸出:00:00:30.11shell_exec()在codeigniter中不工作

$input="/opt/lampp/htdocs/images/fish5.flv"; $time = shell_exec("ffmpeg -i $input 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");

如何解決這個問題呢?

+0

爲什麼downvotes?這是一個支持問題。 –

回答

0

當你調試你必須執行shell_exec()的web應用程序時,你應該看到詳細的錯誤。你試過這個嗎? (來自瀏覽器的控制檯)

可能您試圖訪問具有受限權限的文件夾(運行Web服務器的用戶無法訪問該目錄)。使用chmod來授予您的Web服務器權限以訪問此目錄並嘗試再次運行您的命令。它應該工作。

亞歷克斯

+0

我們無法獲得詳細的錯誤。它顯示爲空。 –

0

「不工作」不是一個有用的診斷。會發生什麼?您是否檢查過錯誤記錄/報告是否正確配置以捕獲錯誤?你的日誌裏有什麼?

「這個命令在終端工作」 - 你是什麼意思?你只是運行你傳遞給shell_exec的字符串,還是從命令行運行PHP腳本?後者將顯示shell_exec是否被排除爲disabled function(但請注意,CLI SAPI可能使用與web sapi不同的php.ini)。

除此之外,潛在的原因是:上的數據文件

  • 權限上可執行
  • PATH變量不被填充,以引用的可執行web服務器環境
  • 權限webserver可能正在運行chroot
  • SELinux/Apparmor限制
+0

命令行的結果, http://imgur.com/a/Dg2sX ,而我們得到的笨API空, $輸入= 「/選擇/ LAMPP/htdocs中/圖片/ fish5.flv」; $ time = shell_exec(「ffmpeg -i $ input 2>&1 | grep'Duration'| cut -d''-f 4 | sed s /,//」); –