防止PHP包含来自其他站点目录的文件

目前我正在运行nginx 1.0.11和PHP-FPM。 每个站点都有自己的用户/组,并在/srv/www/...有其主目录。 我有PHP-FPM池作为站点的用户和组在单独的端口上运行(9001为站点1,9002为站点2 …)。 这是否有助于安全?

nginx以www-data:www-data的forms运行。 目前,如果我在site1 (/srv/www/site1.com/www/public_html/script.php)有一个PHP脚本,我可以这样做, include $_SERVER['DOCUMENT_ROOT'] . "/../../../site2.com/www/public_html/index.html"; include $_SERVER['DOCUMENT_ROOT'] . "/../../../site2.com/www/public_html/index.html"; 并阅读该网站的文件。

我怎样才能防止这个? 我看着chroot但每个网站的主目录都符号链接到/dotfiles ,我需要保持,我假设nginx将需要访问日志在/var/logs/nginx/...

看看open_basedir 。 有一些已知的方法来解决它,但是这些可以在configuration中被阻止。

为什么符号链接而不是硬链接的点文件?