2015-12-25 40 views
0

我有一臺使用mplayer來玩網絡收音機的家庭服務器。但是當我從服務器播放它時,它不會播放,並且apache錯誤日誌表示訪問被拒絕到主目錄。如何從PHP運行mplayer exec()www-data

我還使用exec(pkill mplayer)在創建新服務之前停止服務。

因此,目前我必須添加萬維網數據到/ etc/sudoer與所有訪問和它的工作。我試圖做/ home /但它也不會啓動。

所以我想知道什麼是從網絡服務器啓動mplayer沒有安全風險的最佳方式。

這是我的代碼

exec("pkill mplayer"); 
exec("mplayer -slave -quiet http://iedm-fl.akacast.akamaistream.net/7/293/156397/v1/auth.akacast.akamaistream.net/iedm-fl </dev/null >/dev/null 2>&1 &"); 

回答

0

我想,當你嘗試從你的/ home www數據的東西可能不具有此位置的權利。

關於安全性我不太確定,但是您要爲www數據用戶權限以root身份運行mplayer。因此,mplayer容易受到剝削。

也許你可以隔離單個腳本的權利來爲他們運行mplayer。比給這個腳本只執行權限,所以它不能被簡單地編輯。

0

如果你想要的聲音出來的服務器:

運行sudo adduser www-data audio,並重新啓動服務器。這將使用戶www-data有權生成音頻。之後,你的原始代碼應該可以工作。如果沒有,請嘗試更簡單:

exec("pkill mplayer"); 
exec("mplayer http://iedm-fl.akacast.akamaistream.net/7/293/156397/v1/auth.akacast.akamaistream.net/iedm-fl&");