2010-05-12 41 views
2

我有一個使用autotools構建和安裝的軟件包。 軟件包的一部分是可以在本地機器上運行的網站。 因此,在軟件包中有一個.conf文件,其目的是將 複製或鏈接到/etc/apache2/conf.d目錄。什麼是 包的標準方式會這樣做?如果可能的話,我希望 用戶不要有一個額外的步驟,使網站的工作。我想 讓他們安裝軟件包,然後能夠瀏覽到 http://localhost/newpackage以啓動並運行。用於Apache和conf.d安裝過程的Autoconf宏?

另外,有沒有一種方法,autoconf知道有關Apache安裝或 標準的方式,然後通過環境一些如何?如果有人能指出我的方向是正確的,那就太好了。

史蒂夫

回答

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) 

的方式使用APXS在你的automake Makefile.am會是這個樣子:

## Find apache sys config dir 
APACHE2_SYSCONFDIR = `@[email protected] -q SYSCONFDIR` 

## Misc automake stuff goes here 

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

我假設你熟悉的automake和autoconf工具。

+0

非常感謝!這正是我要找的。 – 2010-05-14 15:01:50