我正在创建一个生产服务器,将使用PHP-fpm运行Nginx.我希望在保护服务器和保持良好的快速工作流程之间有一个很好的组合.
现在,总能保证系统安全的一件事就是chrooting.现在我已经阅读了很多关于这一点,并且chrooting Nginx非常复杂.
据说一个好方法是使用PHP-fpm构建的chroot函数.我读了几个指南,解释了如何设置它,但我还没有读到它带来的影响.我甚至读到没有.
嗯,我得到的第一个问题是时间相关的.解决方法是将/ etc / localtime和/usr/share / zoneinfo文件夹复制到chroot目录中.
没有任何指南告诉你这个,这是你注意到的第一个错误.
现在我遇到了file_get_contents的问题,我收到以下错误:
Failed to open stream: PHP_network_getaddresses: getaddrinfo Failed: Name or service not kNown
我想解决方案是在chroot中添加更多文件.我真的不想为我开发的每个网站都这样做.
题
现在这是chrooting的情况,即使在PHP-fpm,或者我做错了什么.有什么东西我必须启用以使一切正常工作,或者我应该将所有内容移动到目录中.
是的,您需要chroot目录中的基本功能文件系统.不,你不应该移动(或链接)所有东西 – 这将彻底击败chrooting的整个目的.
本质上,需要在chroot中存在的资源是服务器在运行时需要访问的资源 – 服务器执行的任何动态加载的库,日志目录和支持结构.
在这种情况下,您缺少基本的名称解析配置 – /etc/resolv.conf,/etc/nsswitch.conf,而来自/ lib的nss / dns / resolv相关内容将是一个良好的开端.