Запуск xinc на сервере Apache OpenBSD - PullRequest
9 голосов
/ 13 августа 2008

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

Ответы [ 4 ]

3 голосов
/ 22 сентября 2008

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

2 голосов
/ 31 августа 2008

@ dragonmantank

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

pear list-files xinc/Xinc

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

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

pear config-get php_dir

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

1 голос
/ 24 августа 2008

Первым шагом будет сбор информации обо всем, что необходимо приложению для запуска; Обычно я выполняю это, запустив 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 августа 2008

Никогда не использовав 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.

...