2013-10-30 44 views
1

php文件位於網站目錄(/var/www)中,我想從index.html執行它,它位於同一目錄中。單擊按鈕(apache)後從網站執行php文件

PHP文件:

<?php 
    exec("sudo -u pi /home/pi/camcv/camcv .. "); 
    ?> 

可以通過在系統中的任何地方命令行中鍵入php /var/www/script.php運行,它執行正確(照相機閃光燈,打開與圖片,沒有錯誤的窗口)。我需要它可以通過網站的www-data用戶執行。

我知道有很多選擇,我已經試過submit形式,onClick行動,發送參數($_POST['xy']),然後用看着它:「如果」結構PHP文件,AJAXXMLHttpRequest形式和的$.ajax形式,我試圖包括javascript jquery.min.js,並試圖在sudoers中添加權限或更改文件夾/文件的所有權,以允許讀/寫/執行...所有內容都未達到目標。

所以我的問題是:

-Does有人有防彈辦法,使這項工作?

- 你能告訴我什麼我必須在sudoers中添加嗎?

感謝您的任何意見。

PS:很少有嘗試將我重定向到頁面http://(ip)/script.php,所以至少有一些按鈕響應。另外,XMLHttpRequest確實可以改變網頁上的文本(讀取和發佈txt文件)。

PSS:該功能不需要任何返回信息,我需要頁面留在網站上的按鈕,可能不會重新加載。

+0

www數據ALL = NOPASSWD:ALL? – Hackerman

+0

是的,但那會完全暴露頁面..但由於它的研究原因,我打開它,因爲你寫了...仍然沒有發生......我只是發現它只反應,如果用戶是「pi」,但部分命令「-u pi」應該照顧那個。 – Zoidbergus

回答

0

嘗試用jQuery來解決這個問題:

<!doctype html><head><meta charset="utf-8"></head><body> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script> 
$(function(){ 
$("#clickme").bind('click', function(){ 
     $.get("script.php", function(data) { 
     $(".result").append(data); 
     }); 
    }); 
}); 
</script> 
<input type="submit" id="clickme" value="TEST"> 
<div class="result">Result...</div> 
</body> 
</html> 

,如果你的 「script.php的」 有任何迴應,你會得到它在div容器

+0

感謝您的快速響應,我嘗試了代碼,但它似乎沒有工作。也許是因爲只有用戶「pi」才能打開攝像頭窗口..我會嘗試使錯誤日誌看到它寫的是什麼。你知道任何基本功能,如果它成功將是可見的嗎?類似mkdir但對系統干擾較少。 – Zoidbergus

+0

您值得擁有一枚勳章:)它工作正常,一切正常。另外..一個建議:如果你正在調用一個硬件程序(人臉識別),真的有人建議通過該程序,並使用外部顯示器chceck獲取完整的文件路徑和問題。 – Zoidbergus