【问题标题】:Not able to execute shell script in php无法在php中执行shell脚本
【发布时间】:2016-05-04 13:59:28
【问题描述】:

我可以通过命令行终端通过 php 执行 shell 脚本。但是当通过浏览器单击 HTML 按钮时,我无法使用 php 执行相同的脚本(.sh)。

以下是我的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>

【问题讨论】:

  • 你得到什么错误?也许您的网络服务器没有 root 访问权限?
  • 您的 shell 脚本将在默认 web 用户下执行。确保用户具有执行权限。

标签: php shell


【解决方案1】:

使用

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

更新:

你之前没有提到/root/wetty,你有几个选择:

  1. wetty 目录移动到网络服务器用户具有执行权限的位置。
  2. 设置/root/wetty的权限允许webserver用户执行(不安全)

注意: 确保您拥有对wettyload.shexecute 权限

【讨论】:

  • 你认为网络用户对/root有任何权限?
  • @AbraCadaver OP同时更新了问题,之前没有提到root...
猜你喜欢
  • 2017-03-27
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 2023-03-04
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
相关资源
最近更新 更多