【发布时间】:2023-03-23 15:25:01
【问题描述】:
我正在尝试在 linux 机器上连接到 php 中的 unix 套接字。它是一个微控制器,所以我决定使用 lighttpd 来启动和运行服务器。我在连接到另一个应用正在侦听的套接字时遇到问题。
在 PHP 中,我使用 socket_create() 创建了一个套接字,将 AF_UNIX 作为第一个参数传递,然后我尝试使用 socket_connect() 连接到套接字,这得到了我使用 socket_last_error() 发现的权限被拒绝错误。
另一个应用程序正在侦听套接字上的新连接,我可以通过套接字与另一个应用程序连接到它,但我在 php 中获得了拒绝权限。
代码如下所示:
$socket = socket_create(AF_UNIX, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_connect($socket, $sockaddr);
echo socket_last_error();
lighttpd 在用户“www-data”下运行,该用户位于 sudo、adm 和 www-data 组中。
说实话,即使经过大量的谷歌搜索,我也不知道从这里去哪里。
没有 selinux,所以提到使用 setsebool 的答案将不起作用,因为没有 setsebool 命令
lighttpd 不使用 apache,因此与 apache 相关的任何答案都不起作用,因为没有 apache。
我如何授予 lighttpd 或 php5 连接到套接字的权限?
如果重要的话,php5 正在使用 fastcgi
【问题讨论】:
标签: php linux sockets lighttpd