other versions
- wheezy 2.2.22-13+deb7u6
conflicting packages
APXS(1) | apxs | APXS(1) |
NAME¶
apxs - APache eXtenSion toolSYNOPSIS¶
apxs -g [ -S name=value ] -n modnameSUMMARY¶
apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server. This is achieved by building a dynamic shared object (DSO) from one or more source or object files which then can be loaded into the Apache server under runtime via the LoadModule directive from mod_so.$ httpd -l
$ apxs -i -a -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o cp mod_foo.so /path/to/apache/modules/mod_foo.so chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started $ _
OPTIONS¶
Common Options¶
- -n modname
- This explicitly sets the module name for the -i (install)
and -g (template generation) option. Use this to explicitly specify the
module name. For option -g this is required, for option -i the apxs tool
tries to determine the name from the source or (as a fallback) at least by
guessing it from the filename.
Query Options¶
- -q
- Performs a query for apxs's knowledge about certain
settings. The query parameters can be one or more of the following
strings: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB,
LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET. .PP Use this for
manually determining settings. For instance use INC=-I`apxs -q INCLUDEDIR`
.PP inside your own Makefiles if you need manual access to Apache's C
header files.
Configuration Options¶
- -S name=value
- This option changes the apxs settings described above.
Template Generation Options¶
- -g
- This generates a subdirectory name (see option -n)
and there two files: A sample module source file named mod_ name.c
which can be used as a template for creating your own modules or as a
quick start for playing with the apxs mechanism. And a corresponding
Makefile for even easier build and installing of this module.
DSO Compilation Options¶
- -c
- This indicates the compilation operation. It first compiles the C source files (.c) of files into corresponding object files (.o) and then builds a dynamically shared object in dsofile by linking these object files plus the remaining object files (.o and .a) of files. If no -o option is specified the output file is guessed from the first filename in files and thus usually defaults to mod_name.so.
- -o dsofile
- Explicitly specifies the filename of the created dynamically shared object. If not specified and the name cannot be guessed from the files list, the fallback name mod_unknown.so is used.
- -D name=value
- This option is directly passed through to the compilation command(s). Use this to add your own defines to the build process.
- -I incdir
- This option is directly passed through to the compilation command(s). Use this to add your own include directories to search to the build process.
- -L libdir
- This option is directly passed through to the linker command. Use this to add your own library directories to search to the build process.
- -l libname
- This option is directly passed through to the linker command. Use this to add your own libraries to search to the build process.
- -Wc,compiler-flags
- This option passes compiler-flags as additional flags to the libtool --mode=compile command. Use this to add local compiler-specific options.
- -Wl,linker-flags
- This option passes linker-flags as additional flags
to the libtool --mode=link command. Use this to add local linker-specific
options.
DSO Installation and Configuration Options¶
- -i
- This indicates the installation operation and installs one or more dynamically shared objects into the server's modules directory.
- -a
- This activates the module by automatically adding a corresponding LoadModule line to Apache's httpd.conf configuration file, or by enabling it if it already exists.
- -A
- Same as option -a but the created LoadModule directive is prefixed with a hash sign (#), i.e., the module is just prepared for later activation but initially disabled.
- -e
- This indicates the editing operation, which can be used
with the -a and -A options similarly to the -i operation to edit Apache's
httpd.conf configuration file without attempting to install the module.
EXAMPLES¶
Assume you have an Apache module named mod_foo.c available which should extend Apache's server functionality. To accomplish this you first have to compile the C source into a shared object suitable for loading into the Apache server under runtime via the following command:$ apxs -c mod_foo.c /path/to/libtool --mode=compile gcc ... -c mod_foo.c /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo $ _
$ apxs -i -a mod_foo.la /path/to/instdso.sh mod_foo.la /path/to/apache/modules /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules ... chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/conf/httpd.conf] $ _
LoadModule foo_module modules/mod_foo.so
$ apxs -i -A mod_foo.c
$ apxs -g -n foo Creating [DIR] foo Creating [FILE] foo/Makefile Creating [FILE] foo/modules.mk Creating [FILE] foo/mod_foo.c Creating [FILE] foo/.deps $ _
$ cd foo $ make all reload apxs -c mod_foo.c /path/to/libtool --mode=compile gcc ... -c mod_foo.c /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo apxs -i -a -n "foo" mod_foo.la /path/to/instdso.sh mod_foo.la /path/to/apache/modules /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules ... chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/conf/httpd.conf] apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started $ _
2012-01-10 | Apache HTTP Server |