2008-08-13 19 views
8

Кто-нибудь мог заставить xinc работать корректно в chrooted по умолчанию Apache Apache? Я бы хотел, чтобы наш сервер разработки работал полностью chrooted так же, как наш сервер Production, чтобы мы убедились, что наш код работает просто отлично.Запуск xinc на сервере Apache OpenBSD

ответ

2

Вы опубликовали вопрос на Xinc bug tracker? Сам Xinc должен работать нормально, поскольку он работает как демон, так и как веб-приложение. Как вы уже упоминали, проблема может заключаться в том, что демон не работает в среде chroot'ed, где, как веб-интерфейс, приводит к тому, что обе стороны не захватывают файлы.

0

Я никогда не использовал xinc самостоятельно, я могу только намекнуть, как обычно я получаю файлы для chrooting.

Первым шагом будет сбор информации обо всем, что нужно для приложения; это я обычно делаю, выполняя systrace(1) и ldd(1), чтобы узнать, что необходимо для запуска программного обеспечения.

Перейти через выход

systrace -A -d. <app> 
ldd <app> 

и убедитесь, что все, что приложение касается и потребностей (довольно много приложений трогать вещи, это на самом деле не нужно) в среде корневой. Возможно, вам придется немного изменить конфигурацию и переменные среды. Кроме того, если есть возможность иметь журнал приложений в syslog, я обычно делаю это и создаю syslog-сокет (см. Параметр -a syslogd(8)), чтобы уменьшить места, к которым приложение нуждается в доступе на запись.

То, что я только что описал, представляет собой общий способ сделать практически любую программу, запущенную в среде chroot (однако, если вам нужно импортировать половину пользовательской и некоторых команд suid, вы можете просто не делать chroot :). Для приложений, работающих под Apache (я уверен, вы знаете, что OpenBSD httpd(8) немного отличается) у вас есть опция (после запуска программы, любые динамические библиотеки все еще должны присутствовать в тюрьме) использования apache для доступа файлы, позволяющие использовать httpd.conf для импорта ресурсов в среду chroot, не копируя их.

Также полезно (если немного устаревшее) ссылка this, излагающая некоторые ошибки в chrooted PHP на OpenBSD.

0

Первым шагом будет сбор информации обо всем, что нужно для приложения; это я обычно выполняю, запуская systrace (1) и ldd (1), чтобы узнать, что необходимо для запуска программного обеспечения.

Я попробую. Большая проблема, которую я обнаружил с помощью xinc, заключается в том, что, хотя это приложение PHP, оно хочет знать пути установки приложений (но все равно распространяет материал в другие папки) и запускает некоторые скрипты PHP в режиме демона (эти сценарии являются самыми трудными для работать). Так, например, я сказал это, чтобы установить в/вар/WWW/Xinc, а затем сделал симлинк из

/вар/WWW/вар/WWW/Xinc ->/вар/WWW/Xinc

и он частично работал. Я получил графический интерфейс, чтобы понять, что он отказался признать какие-либо проекты, которые я создал. Я думаю, что самая большая проблема заключается в том, что в ее части есть chroot, а другая половина работает снаружи.

Если все остальное не удается, мне просто нужно что-то построить, поскольку мы программируем внутри chrooted среды, так как наша продукция chrooted. Мы столкнулись с проблемами, которые мы кодируем вне chroot, а затем должны отслеживать, чтобы найти то, что нам нужно, чтобы заставить его работать внутри chroot.

1

@dragonmantank

В случае Xinc, я надеюсь, что вы использовали PEAR для его установки.

pear list-files xinc/Xinc 

Это должно сделать это и показать вам, где ваша установка Xinc поместить свои файлы. Таким образом, хотя Xinc является «просто» одним большим PHP-скриптом, он по-прежнему распространяется на rc-скрипты и все те другие вещи, которые необходимы для запуска приложения. Я уверен, что вам не нужно добавлять все пути, перечисленные там, но, вероятно, некоторые из них, чтобы заставить его работать.

Помимо самого Xinc, я думаю, что он также нуждается в PHPUnit и кучу других PEAR LIBS для запуска, так что я бы предложить это:

pear config-get php_dir 

И тогда вам нужно добавить этот путь (как предложил Хенрик) в среду chroot.