2

我有一个使用自动工具构建和安装的包。包的一部分是一个可以在本地机器上运行的网站。因此,在包中有一个 .conf 文件,可以复制或链接到 /etc/apache2/conf.d 目录。软件包执行此操作的标准方式是什么?如果可能的话,我希望用户不要有额外的步骤来使网站正常工作。我想让他们安装包,然后能够浏览到 http://localhost/newpackage以启动和运行。

此外,有没有一种方法可以让 autoconf 了解 apache 安装或通过环境的标准方法?如果有人能指出我正确的方向,那就太好了。

史蒂夫

4

1 回答 1

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

于 2010-05-13T02:05:43.193 回答