我们的老师有一个网络服务器,我们被允许测试一些东西。我连接到具有腻子服务器,并试图以下命令:将字符串写入虚拟文件?
echo "i 4 r 255 g 0 b 0." > /dev/ttyACM0
ttyACM0
是虚拟文件重定向流以一个串行接口。这个特定的命令改变rgb led的颜色。但是,同样的命令不会在PHP与exec
或shell_exec
工作:
<?php
// Script saved at /home/STUDENT_NAME/public_html/blink.php
echo shell_exec("echo \"i 4 r 255 g 0 b 0.\" > /dev/ttyACM0"); // Doesn't work
echo shell_exec("echo \"Hello\""); // Returns "Hello"
?>
我知道exec
和shell_exec
没有被禁用,因为第二次调用shell_exec
作品。我的下一个想法是使用fopen("php://memory", "a");
,但我不知道如何使用这些包装。所以我的问题:
- 如何正确使用这些包装? (也许像
"php://memory/dev/ttyACM0"
) - 有没有更好的解决方案?
'public_html'建议Apache。 Web服务器用户是否允许写入该文件?此外,缺少错误消息表明您没有配置PHP来显示它们。 – 2014-09-22 15:20:38