2016-05-04 30 views
1

シェルスクリプトをコマンドラインターミナル経由でphpで実行できます。しかし、ブラウザからHTMLボタンをクリックしたときに同じスクリプト(.sh)をPHPで実行することはできません。私のhtmlコード(url.html)に続きphpでシェルスクリプトを実行できません

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

される - 私のシェルスクリプト(wettyload.sh)に続き

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

される - 後

は私のPHPスクリプト(wettyload.php)であります -

<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

execute権限をしたことを確認してください?ウェブサーバーにルートアクセス権がない可能性がありますか? – colburton

+1

あなたのシェルスクリプトは、デフォルトのWebユーザの下で実行されます。ユーザーに実行権限があることを確認してください。 – Webomatik

答えて

0

使用

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

更新:

  1. ウェブサーバのユーザが実行持っている場所にwetty DIR移動:

    あなたが前に/root/wettyは言及しなかった、あなたはオプションのカップルがきましたパーミッション。

  2. ウェブサーバのユーザが実行できるように/root/wettyの許可(危険な)

に注意設定します。 をあなたはどのようなエラーが出るんwettyload.sh

+0

あなたは '/ root'の権限をWebユーザーに与えていると思いますか? – AbraCadaver

+0

@AbraCadaver OPはその間に質問を更新しました。 –

関連する問題