【问题标题】:how to run a .sh file from php?如何从 php 运行 .sh 文件?
【发布时间】:2011-09-13 06:27:48
【问题描述】:

我正在尝试使用 php 运行 shell 脚本

shell 脚本 ( /home/scripts/fix-perm.sh ) 在同一个服务器中

这是我正在尝试的代码

<?php
echo shell_exec('/home/scripts/fix-perm.sh');
?>

上面的代码不工作

我正在使用 linux 服务器

谁能帮帮我?

【问题讨论】:

  • 它是返回错误还是什么都不做?它会引发权限错误吗? php脚本在哪个用户下运行?请提供更多信息。您可能还想尝试执行 'bash /home/scripts/fix-perm.sh' 假设它是一个 bash 脚本。
  • 它没有显示任何东西
  • 像使用/bin/bash --> shell_exec("/bin/bash /var/www/html/roshan.sh");

标签: php


【解决方案1】:

Shell exec 接受一个字符串,该字符串需要是一个实际的命令。您现在正在向它传递一个文件路径。这不会被解释为“在此路径执行文件”。你可以做几件事。

您需要做的是用程序调用文件。按照评论中的建议用 bash 或 sh 调用它:

echo shell_exec('sh /home/scripts/fix-perm.sh');

另一种选择可能是:

$contents = file_get_contents('/home/scripts/fix-perm.sh');
echo shell_exec($contents);

我认为第一个选项会更好。

请务必注意,执行外部程序的所有命令都需要实际命令,而不是文件路径或其他东西。这适用于shell_execexecpassthru 等。

【讨论】:

  • 我建议不要这样做。使文件可执行更干净。
  • 我都试过了,但它没有显示任何东西,它会返回任何结果吗?如何判断它是否工作?
  • shell_exec 返回命令生成的输出。如果您的脚本没有输出任何内容,则不会有任何输出:)
  • @Jan 我不同意,调用解释器更明确。
  • @IslandCow:“鸡”是方案的一个版本。我不知道任何一种叫做“鸡蛋”的语言。它是我从未听说过与“鸡”押韵的任何其他语言的随机占位符:-)
【解决方案2】:

我不确定,但您可以先尝试在服务器上使用chmod +x /home/scripts/fix-perm.sh,然后再尝试...

【讨论】:

    【解决方案3】:

    首先您需要确保文件具有正确的权限

    在您的服务器上chmod u+x /home/scripts/fix-perm.sh

    然后你运行:echo shell_exec('sh /home/scripts/fix-perm.sh');

    或者如果您想将结果输出到 txt 文件中:

    shell_exec('sh /home/scripts/fix-perm.sh &gt; /home/scripts/log.txt &amp;');

    【讨论】:

      【解决方案4】:

      我在阅读所有帖子时遇到了类似的问题。我想执行一个带有另一个文件夹路径的 .sh 文件,并将结果保存在我的 php 页面中(我不想关闭 .sh,因为它正在寻找 css 更改)。 这是我尝试的,但在 php 端没有附加任何内容:

          <?php
          echo '<html><head>';
          echo'</head><body>';
              shell_exec('/bin/sh ../include/makeCss/makeWatch.sh'); 
          echo '</body></html>';
      ?>
      

      对于 makeWatch.sh

       #!/bin/bash
      sudo compass watch
      

      【讨论】:

        猜你喜欢
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 2016-04-22
        • 2013-03-03
        • 1970-01-01
        • 2013-06-05
        • 2014-02-03
        • 2017-11-06
        相关资源
        最近更新 更多