【问题标题】:PHP 7.3.2 shell_exec output stopped working out the suddenPHP 7.3.2 shell_exec 输出突然停止工作
【发布时间】:2021-03-07 20:29:56
【问题描述】:

我要疯了,我有一个 PHP 文件来定位我网络上的其他树莓派计算机,我可以通过这个文件直接连接,这工作得很好但突然无缘无故停止工作,我似乎无法弄清楚为什么。

我正在使用 Nginx,最近使用 sudo apt install 将我的 PHP 升级到 PHP 7.3.19-1~deb10u1 (cli)(构建时间:2020 年 7 月 5 日升级。

PHP

<a class='myButton' id="scan" href='scan.php' target='_self'>SCAN NETWORK</a>
</center>
    <p></p>
<?php
$output = shell_exec("sudo arp-scan --localnet | awk '/b8:27:/ { print $1 }'");
$output = shell_exec("sudo arp-scan --localnet | awk '/dc:a6:/ { print $1 }'");
$a = explode(PHP_EOL, $output);
foreach ($a as $b) {if ($b != " " and !empty($b)) { echo '<div class="col2" id="col2"> <a id="scan" href="http://' . $b . '/web/" target="_parent"><img id="logo" src="http://' . $b . '/led/assets/logo.png?t=" . time();"> </a></div>' ; echo "<br /> <a class='myButton' href='http://$b/led/numbers/1.php'>1</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/2.php'>2</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/3.php'>3</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/4.php'>4</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/5.php'>5</a>  &nbsp; <a class='myButton' href='http://$b/led/numbers/6.php'>6</a>&nbsp;  "; }}
?>

我为所有需要的命令授予了 visudo 权限。

www-data ALL=NOPASSWD: /usr/bin/sudo
www-data ALL=NOPASSWD: /usr/bin/print
www-data ALL=NOPASSWD: /usr/bin/awk
www-data ALL=NOPASSWD: /usr/sbin/arp-scan
www-data ALL=NOPASSWD: /usr/bin/php
www-data ALL=NOPASSWD: /usr/sbin/php-fpm7.3

我还检查了我的 php.ini 文件,看看是否有任何更改,但文件仍然保持不变。

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,

有人可以告诉我如何解决这个问题吗?

【问题讨论】:

    标签: php shell shell-exec visudo


    【解决方案1】:

    没关系 PHP 7.3.19-1~deb10u1 (cli) 发生了一些变化,我通过将代码绑定到一行来解决了这个问题。

        <?php
        $output = shell_exec("sudo arp-scan --localnet | awk '/dc:a6:/ { print $1 }' && sudo arp-scan --localnet | awk '/b8:27:/ { print $1 }'");
        $a = explode(PHP_EOL, $output);
        foreach ($a as $b) {if ($b != " " and !empty($b)) { echo '<div class="col2" id="col2"> <a id="scan" href="http://' . $b . '/web/" target="_parent"><img id="logo" src="http://' . $b . '/led/assets/logo.png?t=" . time();"> </a></div>' ; echo "<br /> <a class='myButton' href='http://$b/led/numbers/1.php'>1</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/2.php'>2</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/3.php'>3</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/4.php'>4</a> &nbsp; <a class='myButton' href='http://$b/led/numbers/5.php'>5</a>  &nbsp; <a class='myButton' href='http://$b/led/numbers/6.php'>6</a>&nbsp;  "; }}
    ?>
    

    有趣的部分是在其中一个树莓派上,我没有升级 PHP 版本,之前的代码仍然可以正常工作。

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2021-02-01
      • 2016-12-29
      相关资源
      最近更新 更多