2011-03-29 29 views
0

我正在上傳一個視頻,該視頻應該會生成三個屏幕截圖縮略圖。我有兩個管理和前端運行相同的上傳代碼,但是當我從前端上傳,僅產生拇指一些奇怪的原因不是從後端...PHP,exec問題......我如何確保執行正常?

我的目錄結構 root/convert.php(這是通過exec調用運行文件) (以下兩個文件都在用戶端和管理分別高端運行上傳文件)

root/upload.php 
root/siteadmin/modules/videos/edit.php 

我相信convert.php不是從管理員身份運行由於某種原因,這邊。該命令是這樣的:

$cmd = $cgi . $config['phppath']. ' ' .$config['BASE_DIR']. '/convert.php ' .$vdoname. ' ' .$vid. ' ' .$ff;echo $cmd;die; 
         exec($cmd. '>/dev/null &'); 

而且呼應了EXEC $cmd,我得到這個:

/usr/bin/php /home/testsite/public_html/dev/convert.php 1272.mp4 1272 /home/testsite/public_html/dev/video/1272.mp4 

如何確保convert.php正在運行?

編輯:好吧,現在我確定它沒有從管理端執行,任何想法爲什麼?

回答

3

http://php.net/manual/en/function.exec.php

「return_var」 - 如果return_var參數是與所述輸出參數一起存在,那麼,所執行的命令的返回狀態將被寫入到這個變量。

確定exec是否實際運行convert.php文件的另一種方式是在convert.php中添加一些調試信息(例如,在covert.php腳本啓動時將某些內容寫入文件)。

0

只是一個想法

當它成功運行,你可以在轉換腳本打印「TRUE」。 不添加>/dev/null & 檢查EXEC的返回值

$value = exec($cmd); 
if($value == 'TRUE') 
    // did run sucessfully 
} 
0

搭配chmod 755 convet.php

也確保convert.php的第一行是:

#!/usr/bin/php 

檢查php cli可執行文件的完整路徑。

另請確保convert.php las unix行結束(「\ n」)