在OpenBSD的Apache服务器上运行xinc

时间:2008-08-13 03:47:52

标签: php continuous-integration openbsd xinc

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

@dragonmantank

在Xinc的情况下,我希望您使用PEAR来安装它。

pear list-files xinc/Xinc

这应该这样做,并告诉你Xinc安装放置文件的位置。因此即使Xinc只是一个大的PHP脚本,它仍然分散到rc脚本和所有其他使应用程序运行所必需的东西。我确定你不需要添加那里列出的所有路径,但可能需要一些才能使它运行。

除了Xinc本身,我认为它还需要运行phpUnit和一堆其他PEAR库,所以我建议的是:

pear config-get php_dir

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

答案 2 :(得分:1)

我自己从未使用过xinc,我只能暗示我通常如何使用chroot应用程序。

第一步是收集应用程序运行所需内容的信息;我通常通过运行systrace(1)ldd(1)来找出运行该软件所需的内容。

浏览

的输出
systrace -A -d. <app>
ldd <app>

并确保应用程序触及和需要的所有内容(相当多的应用程序触及它实际上不需要的东西)在chroot环境中可用。您可能需要稍微调整配置和环境变量。此外,如果有一个选项让应用程序登录到syslog,我通常会这样做并创建一个syslog套接字(请参阅syslogd(8)的-a选项),以减少应用程序需要写入权限的位置。

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

同样有用(如果稍微过时)是this链接,概述了在OpenBSD上的chrooted PHP中的一些问题。

答案 3 :(得分:1)

  

第一步是收集应用程序运行所需内容的信息;我通常通过运行systrace(1)和ldd(1)来找出运行软件所需的内容。

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

/ var / www / var / www / xinc - &gt;的/ var / WWW / xinc

它部分有效。我得到了GUI,它拒绝识别我设置的任何项目。我认为最大的问题是它的一部分是运行chroot而另一半是在外面运行。

如果所有其他方法都失败了,那么我们只需要在chrooted环境中进行编程就必须构建一些东西,因为我们的生产已经被chrooted了。我们遇到了一些问题,我们在chroot之外编码,然后必须回溯以找到我们需要使它在chroot内工作的东西。