2016-05-04 172 views
1

我能夠通過命令行終端通過php執行shell腳本。但是當我通過瀏覽器單擊HTML按鈕時,我無法使用php執行相同的腳本(.sh)。無法在php中執行shell腳本

以下是我的PHP腳本(wettyload.php) -

<?php 
    shell_exec('/var/www/html/wettyload.sh'); 
?> 

以下是我的shell腳本(wettyload.sh) -

#!/bin/bash 
cd /root/wetty 
node app.js -p 8080 

以下是我的HTML代碼(url.html) -

<html> 
    <body> 
     <form name="form2" method="post" action="http://127.0.0.1/wettyload.php"> 
      <input type="submit" id="url" name="url" value="Connect terminal"> 
     </form> 
    </body> 
</html> 
+4

你什麼錯誤?也許你的網絡服務器沒有root權限? – colburton

+1

你的shell腳本將在默認的web用戶下執行。確保用戶具有執行權限。 – Webomatik

回答

0

使用

<?php 
    shell_exec('sh /var/www/html/wettyload.sh'); 
?> 

更新:

你之前還沒有提到/root/wetty,你兩個選擇:

  1. 移動wetty目錄到web服務器用戶執行的位置權限。
  2. 設置的/root/wetty的權限,允許Web服務器用戶執行(不安全)

注: 確保您已經execute權限wettyload.sh

+0

你認爲web用戶對'/ root'有任何權限? – AbraCadaver

+0

@AbraCadaver OP在更新了問題的同時,之前沒有提及根... –