Php 在OpenBSD'上运行xinc;s Apache服务器

Php 在OpenBSD'上运行xinc;s Apache服务器,php,continuous-integration,openbsd,xinc,Php,Continuous Integration,Openbsd,Xinc,有人能够让xinc在OpenBSD的chrooted默认Apache下正确运行吗?我想让我们的开发服务器像我们的生产服务器一样完全正常运行,这样我们就可以确保我们的代码正常运行。我本人从未使用过xinc,我只能暗示一下我通常是如何使用chrooting应用程序的 第一步是收集应用程序运行所需的所有信息;我通常通过运行和查找运行软件所需的内容来实现这一点 检查 systrace -A -d. <app> ldd <app> systrace-A-d.)为了减少应用程序需要

有人能够让xinc在OpenBSD的chrooted默认Apache下正确运行吗?我想让我们的开发服务器像我们的生产服务器一样完全正常运行,这样我们就可以确保我们的代码正常运行。

我本人从未使用过xinc,我只能暗示一下我通常是如何使用chrooting应用程序的

第一步是收集应用程序运行所需的所有信息;我通常通过运行和查找运行软件所需的内容来实现这一点

检查

systrace -A -d. <app>
ldd <app>
systrace-A-d.)为了减少应用程序需要写入访问权限的位置

我刚才描述的是一种通用的方法,可以使任何程序在chroot环境中运行(但是,如果您需要导入一半的userland和一些suid命令,您可能不想执行chroot:)。对于在Apache下运行的应用程序(我相信您知道OpenBSD略有不同),您可以选择(一旦程序启动;任何动态库仍然需要存在于监狱中)使用Apache访问文件,允许使用导入chroot环境中的资源,而不必实际复制它们

链接也很有用(如果有点过时的话),它在OpenBSD上用chrooted PHP概述了一些问题

第一步是收集应用程序运行所需的所有信息;我通常通过运行systrace(1)和ldd(1)来了解运行软件需要什么

我试试看。我发现xinc的一个大问题是,虽然它是一个PHP应用程序,但它想知道应用程序的安装路径(但它仍然将内容传播到其他文件夹),并以守护程序模式运行一些PHP脚本(这些脚本最难运行)。例如,我告诉它安装到/var/www/xinc,然后创建一个

/var/www/var/www/xinc->/var/www/xinc

它部分起作用了。我让GUI出现了一点,它拒绝识别我设置的任何项目。我认为最大的问题是,它的一部分是运行chroot,另一半是运行在外部

如果其他一切都失败了,我将不得不在chrooted环境中编程时构建一些东西,因为我们的产品是chrooted的。我们遇到了这样的问题:我们在chroot外部编写代码,然后必须回溯到需要什么才能使它在chroot内部工作。

@dragonmantank

就Xinc而言,我希望您使用PEAR来安装它

pear list-files xinc/Xinc
这应该可以做到,并向您显示Xinc安装将其文件放在哪里。因此,尽管Xinc“只是”一个大型PHP脚本,但它仍然扩展到rc脚本和所有其他使应用程序运行所必需的东西中。我确信您不需要添加此处列出的所有路径,但可能需要添加一些以使其运行

除了Xinc本身,我认为它还需要phpUnit和其他一些PEAR lib来运行,所以我建议如下:

pear config-get php_dir

然后,您需要将该路径(如Henrik建议的)添加到chroot环境中。

您是否已将该问题发布在Xinc上?Xinc本身应该运行良好,因为它既可以作为守护进程运行,也可以作为web应用程序运行。正如您所提到的,问题可能是守护进程没有在chroot环境中运行,而web界面就是这样,这会导致任何一方都无法获取文件