风雨兼程-go 2015-08-31 09:07 采纳率: 0%
浏览 1532

apache mod_chroot模块问题

最近研究使用apache的mod_chroot增加apache的安全性。
  遇到2个问题求大神帮忙,环境centos下lamp~~~
    1)exec执行ping命令。php执行程序可以正常,通过浏览器访问没有反应,也不报错。
    2)apache加载了mod_fcgid.so用于处理cgi逻辑。apache启动不起来,报错:
    [Mon Aug 31 07:49:37.000677 2015] [:notice] [pid 28126] mod_chroot: changed root to /var/www.
[Mon Aug 31 07:49:37.000776 2015] [fcgid:emerg] [pid 28126] (2)No such file or directory: mod_fcgid: Can't create shared memory for size 1200712 bytes

    求大神指点,谢谢~~~
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 07:44
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    Apache mod_chroot模块的主要作用是将用户空间中的脚本(如PHP、Perl等)与操作系统内的文件系统隔离,从而提高安全性和性能。

    1. 执行Ping命令:Apache默认会挂载系统的根目录 /,这可能导致一些敏感操作在运行过程中被误认为是来自根用户的指令,从而引发安全风险。

      解决方案:尝试修改 Apache 的配置以指定一个非根用户的主目录作为 chroot 环境。例如:

    # 在 Apache 的 conf 文件中添加以下行:
    # VirtualHosts 和 ServerBlocks 通常位于 "httpd.conf" 或 "sites-available" 目录内。
    VirtualHost *:80 {
        DocumentRoot "/path/to/non-root/home";
    }
    
    1. 加载CGI模块并启动失败:Apache 的 mod_fcgid.so 是用来处理 CGI 进程的,如果它无法创建共享内存,则会导致启动失败。解决此问题的方法可能包括:

      • 确保 Apache 正确地安装了 mod_fcgid.so。如果没有,请从 Apache 的源码包或相应的发行版中下载和安装。

      • 如果已知 mod_fcgid.so 已经正确安装且未出现任何错误,则可能是由于共享内存资源不足导致的。在这种情况下,可以考虑增加服务器上的物理内存或使用更大的虚拟机实例来改善性能。

      • 另一种解决方案是重新编译 Apache,然后卸载旧版本的 mod_fcgid.so 并安装新版本。然而,这种方法可能会引入其他问题,因此建议首先确认旧版本是否存在问题,并尝试其他方法解决问题。

    如果你能提供更详细的日志信息或者具体的错误消息,我或许能够给出更精确的解决方案。

    评论

报告相同问题?