有人能够在OpenBSD的chrooted默认Apache下正确运行xinc吗? 我希望保持我们的开发服务器完全chrooted,就像我们的生产服务器一样,以确保我们的代码在chrooted环境下运行良好。
有人能够在OpenBSD的chrooted默认Apache下正确运行xinc吗? 我希望保持我们的开发服务器完全chrooted,就像我们的生产服务器一样,以确保我们的代码在chrooted环境下运行良好。
你是否已经在Xinc的错误跟踪器上发布了这个问题?Xinc本身应该可以正常运行,因为它既可以作为守护进程运行,也可以作为Web应用程序运行。正如你所暗示的,问题可能是守护进程没有在chroot环境中运行,而Web界面是在其中运行,导致任一方都无法获取文件。
@dragonmantank
对于Xinc,我希望您使用PEAR进行安装。
pear list-files xinc/Xinc
pear config-get php_dir
然后您需要将该路径(如Henrik建议的那样)添加到chroot环境中。
我自己从未使用过 xinc,因此我只能提一下通常如何将应用程序进入 chroot。
第一步是收集有关应用程序运行所需的所有信息; 我通常通过运行systrace(1)和 ldd(1)来找出运行软件所需的内容。
仔细查看输出结果:
systrace -A -d. <app>
ldd <app>
确保应用程序接触和需要的一切(相当多的应用程序接触它实际上不需要的东西)都在chroot环境中可用。您可能需要微调配置和环境变量。此外,如果有选项让应用程序记录到syslog,我通常这样做并创建syslog套接字(请参见syslogd(8)的-a选项),以减少应用程序需要写入访问的位置。
我刚才所描述的是一种通用的方法,可以使任何程序在 chroot 环境中运行(但是,如果需要导入一半的用户空间和一些 suid 命令,则最好不要使用 chroot :)。对于在 Apache 下运行的应用程序(我相信您已经知道 OpenBSD httpd(8) 稍有不同),您可以选择(一旦程序启动;任何动态库仍然需要存在于 jail 中)使用 Apache 访问文件,允许使用 httpd.conf 在 chroot 环境中导入资源而无需实际复制它们。
this 链接也很有用(尽管稍微有点过时),其中概述了在 OpenBSD 上 chrooted PHP 的一些 gotchas。