Макросы Autoconf для установки Apache и conf.d? - PullRequest
2 голосов
/ 12 мая 2010

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

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

Steve

1 Ответ

3 голосов
/ 13 мая 2010

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

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.

...