几个月前,我用 C 语言为 Arduino 微控制器构建了一个串行连接库。我在想,如果我可以为这个库编写一个 PHP 包装器,那该有多棒。
我编写了一个 PHP 扩展,其中只有一个名为“acm_get_door()”的函数,它应该返回 -1、0 或 1,具体取决于我的 Arduino 上某个引脚的状态。如果它返回 -1,则表示未设置连接。
因此,在加载自定义扩展并更改我的两个 php.ini 文件并重新启动其他所有内容后,我通过 CLI 运行了此测试:
$ php -r '回声 acm_get_door();'
它返回一个“1”。我很兴奋,所以我玩了一下电路,看看我能不能得到一个“0”。好吧,我做到了,我认为我的扩展程序运行良好。
然后我转到我的测试网络服务器(同一台计算机)中的一个 .php 文件并尝试运行该函数。我得到了一个'-1'的结果。扩展确实加载了,但我似乎无法启动与 Arduino 的连接。
我想知道这是否可能是关于访问某些文件的权限问题。该函数需要访问一个名为“/dev/ttyACM0”的文件,它可以在 CLI 版本中访问。我的 Apache Web 服务器可能没有访问该文件的权限,如果是这样,我将如何调整内容以便它访问?
感谢您的时间。