2

我在 ubuntu 12.04 上使用 php5-fpm,并为使用 nginx 托管的每个域都有单独的池和 chroot 位置。但是,我知道有些系统文件需要直接在监狱里,但是我需要哪些呢?

我知道 dns 解析目前不起作用,我读过一些文章说我需要将一些系统核心文件复制到目录中,但他们从未真正详细说明我实际需要复制到哪些文件那里。

我知道 dns、时区有一些东西(php 似乎对于任何时间/日期相关的函数都会出错)。

我只是想知道一般 chroot 的使用。是否值得使用它,或者为每个域设置一个单独的分区会更安全,或者甚至为每个域设置一个单独的虚拟机(这会花费更多资源)?

4

2 回答 2

1

我也在寻找这个问题的答案。经过研究,答案似乎并不那么简单。

有些东西很明显,因为它几乎用于所有事情。这些文件用于解析名称、端口和时区。

  • /etc/hosts
  • /etc/nsswitch.conf
  • /etc/resolv.conf
  • /etc/服务
  • /etc/本地时间

但是根据您安装的扩展以及 PHP 的编译方式,您还需要更多的东西。我不知道您是否需要它们,但以防万一,您可以使用命令ldd和 PHP-binary 作为参数来获取 PHP 使用的库列表:

ldd /usr/bin/php5

根据您的扩​​展所在的路径,您可以使用相同的命令来获取所需的库:

ldd /usr/lib/php5/20100525/*

现在您只需要注意您在 PHP-config 文件中使用的其他可执行文件。就我而言,我找到了对sendmail的参考。

我没有让它完全为我工作......我仍然有一些使用 curl 解析名称的问题。但到目前为止还没有开始:)

资料来源:

编辑:这是我从 IRC 的某个人那里得到的脚本。我没试过,但他说效果很好...... http://pastebin.com/index/HyE87bcF

于 2013-01-14T15:22:09.247 回答
0

我使用一组使用 deboostrap 创建 chroot 的脚本来创建我的 Debian/Ubuntu chroot,因此所有库都在那里,我不必弄清楚要安装什么。它可能比你想要的更多,但它可能会让你开始。我经常在由我的脚本创建的 chroot 中进行开发工作,并且(还)没有遇到任何问题。祝你好运!

https://github.com/vtonehundred/vroot

于 2012-08-09T03:20:51.103 回答