有没有人能够让xinc在OpenBSD的chrooted默认Apache下正确运行?我想让我们的开发服务器像我们的生产服务器一样完全运行chrooted,这样我们就可以确保我们的代码运行得很好。
发布于 2008-09-22 08:26:35
你在Xinc bug tracker上发布这个问题了吗?Xinc本身应该运行得很好,因为它既可以作为守护程序运行,也可以作为web应用程序运行。正如您所暗示的,问题可能是守护进程没有在chroot环境中运行,而web界面是这样的,导致任何一方都无法抓取文件。
发布于 2008-08-31 17:04:16
@龙满坦克
在Xinc的例子中,我希望您使用PEAR来安装它。
pear list-files xinc/Xinc这应该可以做到这一点,并显示您的Xinc安装放置其文件的位置。因此,即使Xinc“只是”一个很大的PHP脚本,它仍然扩展到rc脚本和所有其他使应用程序运行所必需的东西中。我确信您不需要添加所有列出的路径,但可能需要添加一些才能使其运行。
除了Xinc本身,我认为它还需要phpUnit和一堆其他的PEAR库来运行,所以我建议是这样的:
pear config-get php_dir然后,您需要将该路径(如Henrik建议的那样)添加到chroot环境中。
发布于 2008-08-24 11:57:21
我自己从来没有使用过xinc,所以我只能提示一下我通常是如何使用chrooting应用程序的。
第一步是收集应用程序运行所需的所有信息;我通常通过运行systrace(1)和ldd(1)来了解运行软件所需的信息。
检查…的输出
systrace -A -d. <app>
ldd <app>并确保应用程序接触到和需要的所有东西(相当多的应用程序接触到它实际上并不需要的东西)在chroot环境中可用。您可能需要对配置和环境变量进行一些调整。此外,如果可以让应用程序将日志记录到syslog中,我通常会这样做并创建syslog套接字(请参阅syslogd(8)的-a选项),以减少应用程序需要写入的位置。
我刚才描述的是一种通用的方法,可以使几乎任何程序在chroot环境中运行(但是,如果您需要导入一半的userland和一些suid命令,您可能不想执行chroot :)。对于在Apache下运行的应用程序(我相信你知道OpenBSD httpd(8)略有不同),你可以选择使用apache访问文件(一旦程序启动;任何动态库仍然需要在监狱中存在),允许使用httpd.conf在chroot环境中导入资源,而无需实际复制它们。
this链接也很有用(如果有点过时),它概述了OpenBSD上chrooted PHP中的一些陷阱。
https://stackoverflow.com/questions/9455
复制相似问题