我在ubuntu 12.04上使用php5-fpm,并为每个使用nginx托管的域提供单独的池和chroot位置。但是,我知道有些系统文件需要直接在jail中,但我需要哪些?
我知道目前dns解析不起作用,我已经阅读了一些文章,说我需要将一些系统核心文件复制到目录中,但是他们从未真正详细了解我实际需要哪些复制到那里。
我知道dns有一些东西,时区(对于任何时间/日期相关函数,php似乎都有错误。)
我只是想知道一般使用chroot。是否值得使用它,或者为每个域分别设置一个单独的分区,或者为每个域分别设置一个独立的vm(这会花费更多的资源)会更安全吗?
答案 0 :(得分:1)
我也在寻找答案。经过研究,答案似乎并不那么简单。
有些东西很明显,因为它几乎用于所有东西。这些文件用于解析名称,端口和时区。
但是根据您安装的扩展以及PHP的编译方式,您还需要做更多的事情。我不知道你是否需要它们,但是如果你需要它们,你可以使用命令 ldd 和你的PHP-binary作为参数获得PHP使用的库列表:
ldd /usr/bin/php5
根据扩展所在的路径,您可以使用相同的命令来获取所需的库:
ldd /usr/lib/php5/20100525/*
现在您只需要注意您在PHP配置文件中使用的其他可执行文件。就我而言,我找到了对 sendmail 的引用。
我没有完全为我工作......我仍然有一些问题使用curl解析名称。但到目前为止才开始:)
来源:
编辑:这是我从IRC的某个人那里得到的一个剧本。我没试过,但他说它运作得很好...... http://pastebin.com/index/HyE87bcF
答案 1 :(得分:0)
我使用一组使用deboostrap来创建chroots的脚本来创建我的Debian / Ubuntu chroot,所以所有库都在那里,我不必弄清楚要安装什么。它可能比你想要的更多,但它可能会让你开始。我经常在我的脚本创建的chroot中进行开发工作,并且还没有任何问题。祝你好运!