什么系统文件需要在一个监狱环境中的php-fpm在ubuntu上正常运行?
我在ubuntu 12.04上使用php5-fpm,并且为使用nginx托管的每个域拥有单独的池和chroot位置。但是,我知道有些系统文件需要直接进入监狱,但我需要哪些文件?什么系统文件需要在一个监狱环境中的php-fpm在ubuntu上正常运行?
我知道dns的解析目前没有工作,并且我已经阅读了一些文章,说我需要将一些系统核心文件复制到目录中,但是他们从未真正详细描述过哪些是我实际上需要复制到那里。
我知道有什么东西的DNS,时区(PHP似乎错误的任何时间/日期相关的功能)。
我只是想知道一般使用chroot。它甚至值得使用它,或者为每个域分配一个单独的分区,甚至为每个域分配一个单独的虚拟机(这会花费更多的资源),它会更安全吗?
创建我的Debian/Ubuntu的文件树根切换了一组使用deboostrap创建的文件树根切换脚本,所以所有的库在那里,我没有搞清楚要安装的。它可能比你想要的要多,但它可能会让你开始。我经常在我的脚本创建的chroots中进行开发工作,并且没有任何问题(尚未)。祝你好运!
我也正在寻找这个答案。经过研究,答案似乎并不那么简单。
某些东西很明显,因为它几乎用于所有东西。这些文件用于解析名称,端口和时区。
- /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来解析名称。只是到目前为止,获得一个开始:)
来源:
- http://www.cyberciti.biz/tips/howto-setup-lighttpd-php-mysql-chrooted-jail.html
- http://forum.nginx.org/read.php?3,229450,229450
编辑:这里有一个脚本,我从有人在IRC了。我还没有尝试过,但他说它工作得很好... http://pastebin.com/index/HyE87bcF
我花了很多年试图找出它。大部分问题似乎都是由dns和时间相关文件造成的。至于卷曲问题,为了让我的工作,我不得不复制resolv *文件,但也为SSL网站,我不得不复制在标准的CA证书集。 – Josh 2013-01-14 18:16:15