APACHE动态和静态编译区别
一、含义:
动态意味着不用此模块的时候就不需要Load进来,使用的时候需要显示的Load进来;
静态意味着先把模块Load进来,想用的时候直接使用.
二、编译:
1、静态编译:
当只需要静态编译module的时候,语法应写成–enable-ssl或–enable-ssl=static。
例如:
#./configure --prefix=/usr/local/apache2 --enable-ssl[=static]查看哪些modules被静态编译进apache里:
#/usr/local/apache2/bin/httpd -lCompiled in modules:  core.c  mod_ssl.c2、动态编译:
当只需要动态编译module的时候,语法写成–enable-ssl=shared即可。
#./configure --prefix=/usr/local/apache2 --enable-ssl=shared查看哪些modules被动态编译进apache里:
#ls -l /usr/local/apache2/modules/-rw-r--r-- 1 root root   8504 Aug 25 14:49 httpd.exp-rwxr-xr-x 1 root root 806898 Aug  7 13:57 mod_ssl.so3、静动混合:
当既需要动态又需要动态的时候,语法写成–enable-ssl=static[动态编译] –enable-rewrite=shared[静态编译]
以下为示例:
#./configure --prefix=/usr/local/apache2 --enable-ssl=static --enable-rewite=shared

三、使用:
1、动态编译使用:
会生成相关的so文件,例如:
1)、动态加载module,在配置文件里需要加上如下语句:
LoadModule access_module /usr/local/apache2/modules/mod_ssl.so2)、使用:
rewriteEngine onRewriteRule ^/(.*)    http://www.hao123.com  [L,P]2、静态编译使用:
例如要使用rewrite模块的时候在配置文件里加下这句就可以了:
RewriteEngine onRewriteRule ^/(.*)    http://www.hao123.com  [L,P]