Запуск xinc на сервере Apache OpenBSD

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

13.08.2008 03:47:52
4 ОТВЕТА
РЕШЕНИЕ

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

3
22.09.2008 08:26:34

Никогда не использовав xinc сам, я могу только намекнуть, как обычно я получаю приложения для синхронизации.

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

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

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

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

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

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

1
24.08.2008 11:57:21

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

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

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

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

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

1
24.08.2008 15:21:50

@dragonmantank

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

pear list-files xinc/Xinc

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

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

pear config-get php_dir

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

2
31.08.2008 17:04:16