Макросы Autoconf для процесса установки Apache и conf.d?

У меня есть пакет, который использует автоинструменты для сборки и установки. Частью пакета является веб-сайт, который можно запустить на локальном компьютере. Итак, в пакете есть файл .conf, который нужно либо скопировать, либо связать с каталогом /etc/apache2/conf.d. Каков стандартный способ, которым пакеты будут это делать? Если возможно, я бы хотел, чтобы у пользователя не было лишнего шага, чтобы сайт работал. Я хочу, чтобы они установили пакет, а затем могли перейти на http://localhost/newpackage, чтобы получить и работает.

Кроме того, есть ли способ, которым autoconf знает об установке apache, или какой-то стандартный способ через среду? Если бы кто-то мог указать мне в правильном направлении, это было бы здорово.

Стив


person Stephen Burke    schedule 12.05.2010    source источник


Ответы (1)


Первое, что вам нужно сделать, это найти инструмент расширения apache apxs или apxs2 (зависит от версии apache и/или платформы, для которой вы создаете). После того, как вы узнаете, где находится ваш инструмент, вы можете запускать запросы, чтобы получить определенные параметры конфигурации apache. Например, чтобы получить каталог конфигурации системы, вы можете запустить:

apxs2 -q SYSCONFDIR

Вот фрагмент того, как вы можете найти инструмент расширения apache: (будьте осторожны, он может содержать синтаксические ошибки)

dnl Note: AC_DEFUN goes here plus other stuff

AC_MSG_CHECKING(for apache APXS)
AC_ARG_WITH(apxs,
            [AS_HELP_STRING([[--with-apxs[=FILE]]],
                            [path to the apxs, defaults to "apxs".])],
[
    if test "$withval" = "yes"; then
      APXS=apxs
    else
      APXS="$withval"
    fi
])

if test -z "$APXS"; then
  for i in /usr/sbin /usr/local/apache/bin /usr/bin ; do
    if test -f "$i/apxs2"; then
      APXS="$i/apxs2"
      break
    fi
    if test -f "$i/apxs"; then
      APXS="$i/apxs"
      break
    fi
  done
fi
AC_SUBST(APXS)

Способ использования APXS в вашем автоматическом Makefile.am будет выглядеть примерно так:

## Find apache sys config dir
APACHE2_SYSCONFDIR = `@APXS@ -q SYSCONFDIR`

## Misc automake stuff goes here

install: install-am
    cp my.conf $(DESTDIR)${APACHE2_SYSCONFDIR}/conf.d/my.conf

Я предполагаю, что вы знакомы с инструментами automake и autoconf.

person Boris    schedule 13.05.2010
comment
Огромное спасибо! Это именно то, что я ищу. - person Stephen Burke; 14.05.2010