我有一个使用autotools构建和安装的软件包。 该软件包的一部分是可以在本地计算机上运行的网站。 所以在包中有一个.conf文件,它应该是 复制或链接到/etc/apache2/conf.d目录。什么是 包的标准方式可以做到这一点?如果可能的话,我愿意 用户没有额外的步骤来使网站工作。我想要 让他们安装包,然后能够浏览到 http://localhost/newpackage启动并运行。
此外,有没有一种方法,autoconf知道apache安装或a 通过那时环境的标准方式如何?如果有人可以 指出我的方向是正确的。
史蒂夫
答案 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工具。