Apache HTTP Server (1999/3/22更新)

DSO設定例の追加

Configuration詳細(工事中)

概要

作成する HTTP Server の構成を指定する方法は、 の2種類あります。
moduleの追加・削除だけの場合、src/Configure ファイルで指定する方が簡単です。

./configure実行後は、指定したオプションはconfig.statusファイルに書き込まれます。 このファイルは、指定したオプションでconfigureコマンドの実行を行うshell scriptとなっていますので、同じオプションで再度./configureを実行したい場合./configureの代わりに./config.statusを実行すると良いでしょう。


configure のオプション指定

configure コマンド・サマリー

     $ [CC=...]        [CFLAGS_SHLIB=...]           [TARGET=...]
       [OPTIM=...]     [LD_SHLIB=...]
       [CFLAGS=...]    [LDFLAGS_SHLIB=...]        
       [INCLUDES=...]  [LDFLAGS_SHLIB_EXPORT=...] 
       [LDFLAGS=...]   [RANLIB=...]  
       [LIBS=...]      [DEPS=...]
       ./configure
           [--quiet]         [--prefix=DIR]            [--enable-rule=NAME]    
           [--verbose]       [--exec-prefix=PREFIX]    [--disable-rule=NAME]   
           [--shadow[=DIR]]  [--bindir=EPREFIX]        [--add-module=FILE]     
           [--show-layout]   [--sbindir=DIR]           [--activate-module=FILE]
           [--help]          [--libexecdir=DIR]        [--enable-module=NAME]  
                             [--mandir=DIR]            [--disable-module=NAME] 
                             [--sysconfdir=DIR]        [--enable-shared=NAME]  
                             [--datadir=DIR]           [--disable-shared=NAME] 
                             [--includedir=DIR]        [--permute-module=N1:N2]
                             [--localstatedir=DIR]
                             [--runtimedir=DIR]        [--enable-suexec]
                             [--logfiledir=DIR]        [--suexec-caller=UID]
                             [--proxycachedir=DIR]     [--suexec-docroot=DIR]
                             [--with-layout=[FILE:]ID] [--suexec-logfile=FILE]
                                                       [--suexec-userdir=DIR]
                             [--with-perl=FILE]        [--suexec-uidmin=UID]
                             [--without-support]       [--suexec-gidmin=GID]
                             [--without-confadjust]    [--suexec-safepath=PATH]

configure オプション一覧

  1. --quiet
  2. --verbose
  3. --shadow[=DIR]
  4. --show-layout
  5. --help
  6. --prefix=DIR
    default: $PREFIX
  7. --exec-prefix=PREFIX
    default: $PREFIX
  8. --bindir=EPREFIX
    default: $BINDIR
  9. --sbindir=DIR
    default: $SBINDIR
  10. --libexecdir=DIR
    default: $LIBEXECDIR
  11. --mandir=DIR
    default: $MANDIR
  12. --sysconfdir=DIR
    default: $SYSCONFDIR
  13. --includedir=DIR
    default: $INCLUDEDIR
  14. --localstatedir=DIR
    default: $LOCALSTATEDIR
  15. --runtimedir=DIR
    default: $RUNTIMEDIR
  16. --logfiledir=DIR
    default: $LOGDIR
  17. --proxycachedir=DIR
    default: $PROXYCACHEDIR
  18. --with-layout=[FILE:]ID]

  19. --with-perl=FILE
  20. --without-support
  21. --without-confadjust
  22. --enable-rule=NAME
  23. --disable-rule=NAME
  24. --add-module=FILE
  25. --activate-module=FILE
  26. --enable-module=NAME
  27. --disable-module=NAME
  28. --enable-shared=NAME
  29. --disable-shared=NAME
  30. --permute-module=N1:N2

  31. --enable-suexec
  32. --suexec-caller=UID
  33. --suexec-docroot=DIR
  34. --suexec-logfile=FILE
  35. --suexec-userdir=DIR
  36. --suexec-uidmin=UID
  37. --suexec-gidmin=GID
  38. --suexec-safepath=PATH


src/Configure ファイル内での指定


例:DSO指定

例1:
Dynamic Link機能を有効にし、mod_rewrite moduleをshared objectにする。
$ ./configure \
  --enable-module=rewrite \
  --enable-shared=rewrite

例2:
Dynamic Link機能を有効にし、標準moduleをshared objectにする。

$ ./configure \
  --enable-shared=max
更に、--enable-module指定したmoduleもshared objectの対象になる。

例3:
Dynamic Link機能を有効にし、ほとんどのmoduleをshared objectにする。 (「ほとんどのmodule」とは、全てのプラットフォームで使用できないサードパーティのライブラリを必要とするmod_auth_dbのようなものや使用するべきではないとされているmod_log_agentやmod_log_refererのようなものを除いた全てのmoduleです。)

$ ./configure \
  --enable-module=most \
  --enable-shared=max

例3が最も柔軟性のある指定で、インストール後に使用するmoduleをhttpd.confで選択する事ができる。 逆に言うと、shared objectとして作成したmoduleであっても、使用するためにはそのmoduleはhttpd.confで指定しておく必要が有る。 つまり、moduleを作成していても、指定しなければロードされない。


make時のエラー

追加したmoduleなどで、make時に次のようなエラーが出た事がありました。
===> src/modules/extra
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` mod_so.c
rm -f libextra.a
ar cr libextra.a mod_so.o
ranlib libextra.a
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_unique_id.c && mv mod_unique_id.o mod_unique_id.lo
ld -Bshareable -o mod_unique_id.so mod_unique_id.lo
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_mime_magic.c && mv mod_mime_magic.o mod_mime_magic.lo
ld -Bshareable -o mod_mime_magic.so mod_mime_magic.lo
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_rewrite.c && mv mod_rewrite.o mod_rewrite.lo
mod_rewrite.c:92: mod_rewrite.h: No such file or directory
*** Error code 1

Stop.
この場合、src/modules/standard/mod_rewrite.hをsrc/modules/extraにコピーしました。
# cp -p src/modules/standard/mod_rewrite.h src/modules/extra/
同様に
===> src/modules/extra
....(中略)
mod_proxy.c:57: mod_proxy.h: No such file or directory
*** Error code 1

Stop.
この場合、src/modules/proxy/mod_proxy.hをsrc/modules/extraにコピーしました。
# cp -p src/modules/proxy/mod_proxy.h src/modules/extra/


[ Apache 1.3 ]
[ Apache HTTP Server ]
[ NetBSD/mac68k Topics (Japanese) もくじ ]

HQP00700@nifty.ne.jp