【问题标题】:apache2 + MPM-ITK + PHP = socket doesn't workapache2 + MPM-ITK + PHP = 套接字不起作用
【发布时间】:2017-11-17 08:31:09
【问题描述】:

我有 2 台服务器运行专有软件,我可以通过特定端口访问并发送/接收 JSON 字符串。 在两台服务器中,每个虚拟主机都有带有 ITK 的 apache2。 在服务器“A”中,我有一个 PHP 脚本,它使用套接字连接到服务器“A”和“B”以获取数据并显示在网页上。问题是 PHP 只能连接到服务器“A”(localhsot),但无法连接到服务器“B”。 PHP 没有显示任何错误(display_errors 在 php.ini 中打开),当我尝试从套接字获取最后一个错误时(我现在不记得 php 函数),我什么也没得到。 在 apache 日志中,我得到了这个错误:

不允许操作:AH02156:setgid:无法将组 ID 设置为 第 0 组

主机之间没有防火墙阻止,我可以在任何方向“telnet”两台服务器都没有任何问题。只是 PHP 没有连接到“外部”hsot,只是 localhost。 我的 vhost 文件中唯一的变化是添加了 itk 选项:

AssignUserId rpi rpi

所以我的问题是:如何配置 apache-itk 以允许我的 PHP 打开外部套接字? 我尝试将 LimitUIDRange 更改为“LimitUIDRange 0 0”,但没有成功。

【问题讨论】:

    标签: php apache sockets


    【解决方案1】:

    可能与 Apache 模块有关:

    mpm_itk_module

    分配用户ID

    Apache 配置。

    请看这个链接:

    我正在尝试解决同样的问题。

    【讨论】:

    【解决方案2】:

    如果设置LimitUIDRange 0 0,则表示只允许root,没有意义。正确的指令是LimitUIDRange 0 65534LimitGIDRange 0 65534。只要您不将任何主机设置为以 root 身份运行,这并不比默认 apache 更不安全。特别是这并不意味着允许网站用户更改自己的用户 ID。但是,他们将被允许运行设置了 setuid 位的可执行文件,就像任何其他普通用户一样。

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 1970-01-01
      • 2013-12-08
      • 2015-10-01
      • 2019-03-28
      • 2016-07-01
      • 1970-01-01
      • 2017-09-14
      • 2010-10-16
      相关资源
      最近更新 更多