Apache 权限被拒绝连接到套接字

Posted

技术标签:

【中文标题】Apache 权限被拒绝连接到套接字【英文标题】:Apache Permission denied to connect to socket 【发布时间】:2013-01-05 01:12:59 【问题描述】:

我正在使用 sys/socket.h。当我尝试在 Apache 服务器环境中建立套接字连接时。它无法与 Permission Defined Errno 13 建立套接字连接。 我需要给 apache 一些权限吗?

谢谢!!

【问题讨论】:

这可能对您有帮助:13PermissionDenied,但有些代码确实对我们有帮助。 【参考方案1】:

暂时禁用 SELinux 看看会发生什么:

以 root 身份编辑 /etc/selinux/config 并将 SELINUX 行更改为 SELINUX=disabled。如果这解决了您的问题,您应该重新启用 SELinux 并与策略编写者联系(即在您的发行版 bugtracker 中提交错误报告)。

感谢乔纳斯的编辑;)

几个月前,我在 Fedora 服务器上遇到了类似的问题,只需要运行 setsebool -P httpd_can_network_connect 1 即可修复

【讨论】:

如果您建议禁用selinux,请同时提及副作用。很多人并不真正了解它的作用,因此值得指出这一点尤其是在 Web 服务的上下文中。 @JonasWielicki 你明白 temporally 的意思吗? 好点——我实际上设法忽略了这一点。我对投反对票感到抱歉;我添加了几行以便能够删除downvote(只能在编辑后删除)。 请注意,还有更细粒度的布尔值,例如如果你需要 SMTP,有一个特殊的布尔值。 我觉得setenforce 0 最好暂时禁用selinux。【参考方案2】:

如果您尝试将套接字bind() 连接到低于 1024 的端口,则需要超级用户权限。

尝试connect() 时,如果本地防火墙禁止连接,可能会返回EACCES (13)。

【讨论】:

以上是关于Apache 权限被拒绝连接到套接字的主要内容,如果未能解决你的问题,请参考以下文章

initctl:无法连接到 Upstart:无法连接到套接字 /com/ubuntu/upstart:连接被拒绝

initctl:无法连接到 Upstart:无法连接到套接字 /com/ubuntu/upstart:docker 映像中的连接被拒绝

osx上的mysql:访问被拒绝并且无法连接到套接字

令人困惑的仅 PDO 问题:无法通过套接字连接/访问被拒绝/无法连接到服务器(共享主机)

Android LocalSocket客户端无法连接到抽象命名空间中的本机服务套接字

Android HTTP POST 请求错误 - 套接字 EACCES 失败(权限被拒绝)