Команда системного уровня не будет выполняться через браузер с использованием HTML и PHP. Проблема с разрешением? - PullRequest
0 голосов
/ 16 июня 2020

Мы пытаемся выполнить системную команду, которая использует внешнее устройство аудиоинтерфейса USB (подключенное к Raspberry Pi 4). Когда команда вводится в терминале tty (консоли) "/ usr / bin / jackd -dalsa -dhw: A96 -r4800 -p1024 -n2", тогда все в порядке. Однако, когда мы пытаемся запустить ту же команду, используя html и. php через браузер (код ниже - с использованием системного вызова), мы получаем ошибки. Похоже, что. php (apache2) не имеет достаточных разрешений для выполнения. Ниже приведен код, который мы используем, и полученная ошибка:

Приветствуется любая помощь в решении проблем с разрешениями.

Index. html (запускается вызов. php при нажатии кнопки СТАРТ в веб-интерфейсе)

<!DOCTYPE html>
<html>

    <head>
        <title>
                Home
        </title>

                        <script src="/static/jquery-3.4.1.min.js"></script>
                        <script src="/static/bootstrap.bundle.min.js"></script>
                                <link rel="stylesheet" type="text/css" href="/static/bootstrap.min.css">
                                <link rel="stylesheet" type="text/css" href="/static/custom.css">

    </head>

    <body style="text-align:center;">

        <h1 style="color:rgb(255,69,0);">
            JackStreamer
        </h1>

        <div>
            <form action="start.php" method="POST">

<input type="submit" value="Start" name="start-btn">
            </form>

            <form action="php reset.php" method="POST">
                    <input type="reset" value="Reset" name="reset-btn">
            </form>
        </div>



    </body>
</html>

Старт. php

Код:

<code>#!/bin/bash
#!/var/lib/php
#!/usr/bin/php

<?php
echo "<pre>"
system ("/usr/bin/jackd -dalsa -dhw:A96 -r4800 -p1024 -n2 2>&1", $result);
echo "<hr>
";?>

Ошибка:

self-connect-mode is "Don't restrict self connect requests"
Cannot lock down 82287136 byte memory area (Cannot allocate memory)
control open "hw:A96" (No such device)
control open "hw:A96" (No such device)
creating alsa driver ... hw:A96|hw:A96|1024|2|4800|0|0|nomon|swmeter|-|32bit
control open "hw:A96" (No such device)
ALSA lib pcm_hw.c:1822:(_snd_pcm_hw_open) Invalid value for card
ALSA lib pcm_hw.c:1822:(_snd_pcm_hw_open) Invalid value for card
ALSA: Cannot open PCM device alsa_pcm for playback. Falling back to capture-only mode
control open "hw:A96" (No such device)
control open "hw:A96" (No such device)
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server
...