用于Apache和conf.d安装过程的Autoconf宏?

时间:2010-05-12 13:37:24

标签: apache autotools autoconf conf.d

我有一个使用autotools构建和安装的软件包。 该软件包的一部分是可以在本地计算机上运行的网站。  所以在包中有一个.conf文件,它应该是 复制或链接到/etc/apache2/conf.d目录。什么是 包的标准方式可以做到这一点?如果可能的话,我愿意 用户没有额外的步骤来使网站工作。我想要 让他们安装包,然后能够浏览到 http://localhost/newpackage启动并运行。

此外,有没有一种方法,autoconf知道apache安装或a 通过那时环境的标准方式如何?如果有人可以 指出我的方向是正确的。

史蒂夫

1 个答案:

答案 0 :(得分:3)

您应该做的第一件事是找到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)

在您的automake Makefile.am中使用APXS的方法如下所示:

## 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工具。