【问题标题】:Executing the content of the shell file in php在php中执行shell文件的内容
【发布时间】:2019-07-09 11:31:18
【问题描述】:

首先,我们有一个 shell 脚本,比如 ifelsesh.sh,其代码如下

a=20 
b=20 

if [ $a == $b ] 
then 

    echo "a is equal to b"
else

    echo "a is not equal to b"
fi 

现在,我们想通过 php 来执行这个文件,比如 execSh.php

       <?php
   // $contents = file_get_contents('ifelsesh.sh');
    try
    {
    exec('ifelsesh.sh',$output);
    echo $output;
    }
    catch(Exception $e)
    {
        echo $e;
    }

当我们通过命令行运行文件时工作正常

>php execSh.php

但是当我们通过浏览器运行 execSh.php 文件时,没有任何效果,为什么并让我们知道整理它的确切原因。提前致谢。

【问题讨论】:

  • 为什么不直接执行.sh脚本呢?
  • 另外,来自manual的关于shell_exec() - “使用此函数无法检测执行失败。当访问程序退出代码时应使用exec()必填。”

标签: php linux shell


【解决方案1】:

确保在php.ini函数shell_execexec被启用。

您可以使用exec 通过PHP 执行shell 脚本,确保您的机器上启用了exec

<?php
   exec(dirname(__FILE__) . '/ifelsesh.sh');
?>

【讨论】:

  • 您可以使用__DIR__,而不是dirname(__FILE__)
  • 感谢先生的回复,但无法正常工作并输出为array(0) { }
  • @NagarajuChimmani:如果你改变了 .ini 文件,那么你必须重新启动 apache。
猜你喜欢
  • 1970-01-01
  • 2016-09-29
  • 2018-10-09
  • 2014-11-08
  • 2010-10-25
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 2011-07-16
相关资源
最近更新 更多