我的问题是,以下脚本在终端中执行正常但在我的Apache2-Webserver上它没有做任何事情 .
<?php
exec("/usr/bin/pactl set-sink-volume 0 60%");
?>
当它从终端执行时,我可以听到音乐响亮
sudo php /var/www/html/test2.php
使用exec的其他命令在Web服务器上运行得非常好 . 工作范例:
<?php
exec("/sbin/shutdown -r now");
?>
Build :
-
Apache 2.4
-
PHP 7
-
Raspberry Pi 3b
-
Raspian
-
通过耳机插孔连接扬声器
在此先感谢您的帮助!
2 回答
我的问题解决了 . 我正在将文件写入文件夹,脚本检查此文件夹中的文件并执行,而不是代码来控制音频(我现在用amixer而不是pactl控制它) .
无论如何,谢谢你的建议!
首先检查组 . 一种方法是使用
ls -lah /usr/bin/pactl
. 它应该显示其他信息,即拥有权限的用户和组 . 它还显示用户,组和其他人是否有权执行 .要将现有用户帐户添加到系统上的组,请使用usermod命令,将examplegroup替换为要添加用户的组的名称,并将andexampleusername替换为要添加的用户的名称 .
usermod -a -G examplegroup exampleusername
例如,要将用户www-data添加到组音乐,请使用以下命令:
usermod -a -G music www-data
Source
edit
另一种方法是允许所有用户通过向所有用户添加执行位来执行
/usr/bin/pactl
.