Кто-нибудь мог заставить xinc работать корректно в chrooted по умолчанию Apache Apache? Я бы хотел, чтобы наш сервер разработки работал полностью chrooted так же, как наш сервер Production, чтобы мы убедились, что наш код работает просто отлично.Запуск xinc на сервере Apache OpenBSD
ответ
Вы опубликовали вопрос на Xinc bug tracker? Сам Xinc должен работать нормально, поскольку он работает как демон, так и как веб-приложение. Как вы уже упоминали, проблема может заключаться в том, что демон не работает в среде chroot'ed, где, как веб-интерфейс, приводит к тому, что обе стороны не захватывают файлы.
Я никогда не использовал 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.
Первым шагом будет сбор информации обо всем, что нужно для приложения; это я обычно выполняю, запуская systrace (1) и ldd (1), чтобы узнать, что необходимо для запуска программного обеспечения.
Я попробую. Большая проблема, которую я обнаружил с помощью xinc, заключается в том, что, хотя это приложение PHP, оно хочет знать пути установки приложений (но все равно распространяет материал в другие папки) и запускает некоторые скрипты PHP в режиме демона (эти сценарии являются самыми трудными для работать). Так, например, я сказал это, чтобы установить в/вар/WWW/Xinc, а затем сделал симлинк из
/вар/WWW/вар/WWW/Xinc ->/вар/WWW/Xinc
и он частично работал. Я получил графический интерфейс, чтобы понять, что он отказался признать какие-либо проекты, которые я создал. Я думаю, что самая большая проблема заключается в том, что в ее части есть chroot, а другая половина работает снаружи.
Если все остальное не удается, мне просто нужно что-то построить, поскольку мы программируем внутри chrooted среды, так как наша продукция chrooted. Мы столкнулись с проблемами, которые мы кодируем вне chroot, а затем должны отслеживать, чтобы найти то, что нам нужно, чтобы заставить его работать внутри chroot.
@dragonmantank
В случае Xinc, я надеюсь, что вы использовали PEAR для его установки.
pear list-files xinc/Xinc
Это должно сделать это и показать вам, где ваша установка Xinc поместить свои файлы. Таким образом, хотя Xinc является «просто» одним большим PHP-скриптом, он по-прежнему распространяется на rc-скрипты и все те другие вещи, которые необходимы для запуска приложения. Я уверен, что вам не нужно добавлять все пути, перечисленные там, но, вероятно, некоторые из них, чтобы заставить его работать.
Помимо самого Xinc, я думаю, что он также нуждается в PHPUnit и кучу других PEAR LIBS для запуска, так что я бы предложить это:
pear config-get php_dir
И тогда вам нужно добавить этот путь (как предложил Хенрик) в среду chroot.