1. Install the mod_proxy module when installing apache
1. Download apache
I downloaded httpd-2.2.12.tar.bz2 and saved it to /home/sxs/software.
2. Unzip the apache file
Enter the /home/sxs/software folder and execute:
# tar -xjf httpd-2.2.12.tar.bz2
A httpd-2.2.12 folder will be generated under /home/sxs/software.
If the suffix of the downloaded file is tar.gz, you need to use the following command
# tar -xzf httpd-2.2.12.tar.gz
3. Set the installation directory and parameters
Enter the newly decompressed httpd-2.2.12 folder and execute:
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=proxy
(usually said on the Internet ./configure --prefix=/usr/local/apache, here is to specify the mod_proxy module to install. How to specify other modules is not clear yet, but you can add modules through the second part after installing apache)
4. Compile and deploy apache
# make WITH_PROXY_MODULES=yes //(网上文章一般都是直接:make) # make install
5. You will see the apache folder in /usr/local. Open the httpd.conf file and you can see:
LoadModule proxy_module modules/mod_proxy.so
and other codes. You can also see the corresponding mod_proxy.so file in the modules folder.
By default, mod_proxy and other modules are not installed when installing apache under Linux.
2. After installing apache, compile and load other modules
Assume that you need to compile and load mod_rewrite.so now
1. Enter the decompressed apache directory. The first part is /home/sxs/software/httpd-2.2.12
2. Find the file to be compiled
# find ./ -name mod_rewrite.c
3. Enter the directory where mod_rewrite.c is located
# cd modules/mappers
4. Compile mod_rewrite.c
# /usr/local/apache/bin/apxs -c mod_rewrite.c
5. Install the mod_rewrite module
# /usr/local/apache/bin/apxs -ian rewrite mod_rewrite.la
Note: The above two steps 4 and 5 can also be combined As a step
# /usr/local/apache/bin/apxs -iac mod_rewrite.c
Note:
apxs is a tool for compiling and installing extension modules for the Apache HTTP server. It is used to compile one or more source programs or object code files into dynamic shared objects so that they can be used by mod_so The LoadModule directive loads into the Apache server at runtime.
Therefore, to use this extension mechanism, your platform must support the DSO feature, and Apache httpd must have the mod_so module built-in.
apxs tool can automatically detect whether such conditions are met. You can also use this command to detect manually:
$ httpd -l
The mod_so module should be in the output list of this command. If all these conditions are met, you can easily install your own DSO module with the help of apxs to extend the functionality of the Apache server:
$ 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 $ _
The parameter files can be any C source program file (.c), object code file (.o), or even a library (.a). The apxs tool will automatically compile C source programs or link object codes and libraries based on their suffixes. However, when using precompiled object codes, you must ensure that they are address independent code (PIC) so that they can be loaded dynamically. If you use GCC to compile, you should use the -fpic parameter; if you use other C compilers, you should consult its manual and use the corresponding compilation parameters for apxs.