lighttpd php5 socket_connect() 权限被拒绝
lighttpd php5 socket_connect() permission denied
我正在尝试连接到 linux 机器上 php 中的 unix 套接字。它是一个微控制器,所以我决定使用 lighttpd 来启动服务器 运行。我在连接到另一个应用程序正在侦听的套接字时遇到问题。
in 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,因此 none 与 apache 相关的答案也可以工作,因为没有 apache。
如何授予 lighttpd 或 php5 连接到套接字的权限?
php5 正在使用 fastcgi 如果这很重要
它在访问 /tmp/socketname 时遇到权限问题。我发现可行的解决方法是让 php 在创建套接字之前对文件执行 chmod 命令:
$sockaddr = "/tmp/socketname";
$command = "sudo chmod go+w ".$sockaddr;
exec($command);
我正在尝试连接到 linux 机器上 php 中的 unix 套接字。它是一个微控制器,所以我决定使用 lighttpd 来启动服务器 运行。我在连接到另一个应用程序正在侦听的套接字时遇到问题。
in 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,因此 none 与 apache 相关的答案也可以工作,因为没有 apache。
如何授予 lighttpd 或 php5 连接到套接字的权限?
php5 正在使用 fastcgi 如果这很重要
它在访问 /tmp/socketname 时遇到权限问题。我发现可行的解决方法是让 php 在创建套接字之前对文件执行 chmod 命令:
$sockaddr = "/tmp/socketname";
$command = "sudo chmod go+w ".$sockaddr;
exec($command);