什么系统文件需要在一个*环境中的php-fpm在ubuntu上正常运行?

问题描述:

我在ubuntu 12.04上使用php5-fpm,并且为使用nginx托管的每个域拥有单独的池和chroot位置。但是,我知道有些系统文件需要直接进入*,但我需要哪些文件?什么系统文件需要在一个*环境中的php-fpm在ubuntu上正常运行?

我知道dns的解析目前没有工作,并且我已经阅读了一些文章,说我需要将一些系统核心文件复制到目录中,但是他们从未真正详细描述过哪些是我实际上需要复制到那里。

我知道有什么东西的DNS,时区(PHP似乎错误的任何时间/日期相关的功能)。

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

创建我的Debian/Ubuntu的文件树根切换了一组使用deboostrap创建的文件树根切换脚本,所以所有的库在那里,我没有搞清楚要安装的。它可能比你想要的要多,但它可能会让你开始。我经常在我的脚本创建的chroots中进行开发工作,并且没有任何问题(尚未)。祝你好运!

https://github.com/vtonehundred/vroot

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

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

  • /etc/hosts中
  • 的/etc/nsswitch.conf
  • 的/etc/resolv.conf
  • /etc/services中
  • 的/ etc /本地时间

但有你需要更多的东西,这取决于你安装的扩展和编译PHP的方式。我不知道如果你需要他们,但以防万一你需要它,你可以得到库列表PHP使用通过使用命令LDD和你的PHP二进制作为参数:

ldd /usr/bin/php5 

根据您的扩展是在道路上,你可以使用相同的命令来获取库要求:

ldd /usr/lib/php5/20100525/* 

现在,你只需要注意你在你的PHP-config文件中使用的其他可执行文件。在我的情况下,我发现对sendmail的引用。

我没有完全为我工作...我仍然有一些问题使用curl来解析名称。只是到目前为止,获得一个开始:)

来源:

编辑:这里有一个脚本,我从有人在IRC了。我还没有尝试过,但他说它工作得很好... http://pastebin.com/index/HyE87bcF

+0

我花了很多年试图找出它。大部分问题似乎都是由dns和时间相关文件造成的。至于卷曲问题,为了让我的工作,我不得不复制resolv *文件,但也为SSL网站,我不得不复制在标准的CA证书集。 – Josh 2013-01-14 18:16:15