簡體   English   中英

php shell_exec中的Lame編碼器命令無法通過http服務器運行

[英]Lame encoder command in php shell_exec doesn't work via http server

我有一個問題,通過php中的shell_exec腳本運行lame編碼器。

並且我的問題突破了這個腳本,並注意到如果我通過終端中的php命令運行它,腳本可以正常工作,但如果我在瀏覽器中打開它則不起作用。 為了以防萬一,我將所有文件的權限設置為777。

這是代碼

< ?php

exec('lame -f -V 9 ../furniture/sound/107887.wav ../furniture/sound/107887.ogg');

問題是,如果我使用php命令在終端中運行腳本,但腳本不能通過瀏覽器運行。

哦,這個scirpt需要最多兩秒鍾,所以它不會是超時或任何事情。 我也沒有得到php或nginx錯誤。

我怎么解決這個問題?

在php的執行PATH上蹩腳嗎? 嘗試用/usr/bin/lame或其他任何東西替換lame

文件參數的相對路徑名怎么樣? 從PHP看到的當前目錄中../furniture/等是否正確? 如果有疑問,請將這些替換為完整路徑名,看看是否能解決問題。

不太可能但值得一提的是:您可能想要檢查lame本身是否設置了所有可執行位。 如果你擁有該文件並且它只能由所有者執行,那么apache將無法運行它。

可能有很多原因導致它無法通過網絡服務器工作,可能是資源或權限相關。 您可以使用exec的第二個可選參數找到它:

<?php
$output = "";
exec('lame -f -V 9 ../furniture/sound/107887.wav ../furniture/sound/107887.ogg',$output);
echo $output;
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM