Apache静态编译与动态编译区别

静态编译

在编译时,已经把相关模块编译进httpd二进制文件中不用再 httpd.conf 中在 LoadModule 来加载,只要在  <ifmodule></ifmodule> 中来配置就可以了。

动态编译:

编译的时候,使用 enable-module=shared  或者 enable-modules-shared=module 来动态编译。 动态显然就不编译到httpd里面去了,启动的时候根本不会加载这个模块, 而是给你一个 module.so  文件。你想用,就在httpd.conf中使用 loadmodule 这个语法来加载,这个模块才有效。

感觉静态编译就像下馆子,东西都是准备好的,随时可以吃。动态编译就像在家吃饭,东西要买回来才能用。一般情况下,下馆子是谢绝外带,但是只要我们提前打招呼(在编译时吧so模块编译进apache核心)就可以了。

区别:静态效率更高,动态更加灵活。

时间: 2024-10-13 22:48:41

Apache静态编译与动态编译区别的相关文章

apache 静态编译和动态编译参考

apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[module]=shared这2个中的一个,那么所有的默认模块为静态.何谓静态? 其实就是编译的时候所有的模块自己编译进httpd 这个文件中,启动的时候这些模块就已经加载进来了,也就是可以使用了,通常:<ifmodule> </ifmodule> 来配置.所以大家看到的配置都是<

Apache静态编译与动态编译详解

Apache拥有4层结构,从核心到外层的module.而外层的module可以用通过静态和动态两种方式与Apache共同工作.这也就引入下文的“动态”和“静态”两种编译安装方式: 静态编译: 编译的时候,所有的模块自己编译进 httpd 这个文件中 ,启动Apache的时候这些模块就已经加载进来了,可以直接来使用,而不用再 httpd.conf 中在 LoadModule 来加载,只要在 <ifmodule></ifmodule> 中来配置就可以了. 动态编译: 编译的时候,使用e

VC , Linux 静态编译与动态编译 (MD, MT)

首先从Linux下开始讲起,因为Linux编程对程序的理解要清楚一些,相比之下VC就比较容易糊涂. 当动态编译时,你发布的程序体积较小,在运行的时候需要同时提供你用到的dll / so文件. 当静态编译时,你发布的程序体积较大,包含所有符号,运行时不需要其他的 dll / so的支持,可以独立运行. 静态编译的目的是使发布的程序可以独立运行,不依赖于其他*.so,在技术上是把所有依赖的符号打包链接进了目标程序.这时候你会发现编译出来的程序的体积要大一些(Link的速度也会慢一些). 编译过程分为

busybox静态编译及动态编译实践

1. 简介 BusyBox 是一个集成了一百多个最常用linux命令和工具的软件.BusyBox 包含了一些简单的工具,例如ls.cat和echo等等,还包含了一些更大.更复杂的工具,例grep.find.mount以及telnet.有些人将 BusyBox 称为 Linux 工具里的瑞士军刀. 简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令.除此之外,提供了良好的编程框架,用户能够将自己的命令集成到busybox当中.在实际的使用过程中,busybox常常被用

浅谈VB.Net 程序的编译和动态编译

---恢复内容开始--- 一般,我们都是通过Visual Studio(下面简称vs)来编写和编译vb.net应用程序的,但是,不少的人并不知道vs是通过何种方式编译程序的.今天,我们就来探讨一下编译vb.net程序的真正原理. 这篇随笔包含如下几个部分: 1.VS是怎么编译的 2.通过vbc.exe来编译应用程序 3.在代码中通过VBCodeProvider动态编译应用程序 ok,首先来说说vs编译应用程序的方法.其实,vs是通过调用vbc.exe来编译vbnet应用程序的.vs把用户编写的代

静态网页与动态网页区别(转)

静态网页,动态网页主要根据网页制作的语言来区分: 静态网页使用语言:HTML(超文本标记语言) 动态网页使用语言:HTML+ASP 或 HTML+PHP 或 HTML+JSP 等. 静态网页与动态的区别 程序是否在服务器端运行,是重要标志.在服务器端运行的程序.网页.组件,属于动态网页,它们会随不同客户.不同时间,返回不同的网页,例如ASP.PHP.JSP.ASP.net.CGI等.运行于客户端的程序.网页.插件.组件,属于静态网页,例如html页.Flash.JavaScript.VBScri

.Net Core Razor 预编译,动态编译,混合编译

预编译 预编译是ASP .Net Core的默认方式.在发布时,默认会将系统中的所有Razor视图进行预编译.编译好的视图DLL统一命名为 xxx.PrecompiledViews.dll 或者 xxx.Views.dll 动态编译 将项目整个配置成动态编译很简单,添加一个配置项目MvcRazorCompileOnPublish,值为false即可 <PropertyGroup> <MvcRazorCompileOnPublish>false</MvcRazorCompile

Apache静态编译与动态编译的区别

Apache拥有4层结构,从核心到外层的module.而外层的module可以用通过静态和动态两种方式与Apache共同工作.这也就引入下文的"动态"和"静态"两种编译安装方式. 静态编译: 编译的时候,所有的模块自己编译进  httpd  这个文件中,启动Apache的时候这些模块就已经加载进来了,只要在  <ifmodule></ifmodule>中来配置就可以了. 动态编译: 编译的时候,使用--enable-mods-shared=M

静态编译和动态编译的区别【转】

本文转载自:https://segmentfault.com/a/1190000000580216 静态函数库一般扩展名为(.a),这类的函数库通常扩展名为libxxx.a .这类函数库在编译的时候会直接整合到程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数哭的内容:但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译. 动态函数库动态函数库的扩展名一般为(.so),这类函数库通常名为libxxx.s