当前位置: 首页 > news >正文

apache的动态和静态

apache的动态和静态  http://www.cnblogs.com/eoiioe/archive/2008/12/23/1360476.html(2.0和2.2一样)

关于apache的动态与静态编译的理解,引用某人的比喻如下:

     好比有两个人a和m,a代表apache,m代表module,要想让a使用m的东西,一个方法是把m的东西都放到a那里去,a使用的时候就是现成的了,就是所谓的静态编译

     还有一个方法,就是告诉a,m的住址,当a要使用m的东西的时候,a去找m,然后使用,不过,这种方法要注意的一个问题就是:m必须要有实际的住址,否则a会找不到m而产生错误的,这种方法也就是apache 的动态(DSO)编译了。

下面说说在apache1.3和apache2.0动态与静态编译编译的区别

首先是apache1.3.29+php4.3.4+mysql4.0.13的静态编译

apache第一次编译,并不要安装,因为php的编译需要apache至少已经编译过一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache

编译php

tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27
make
make install

第二次编译安装apache:
cd ../apache_1.3.29
./configure --prefi=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
make
make install

cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini

修改/usr/local/apache/conf/httpd.conf

查找<IfModule mod_mime.c>

在此范围添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

注意:apache和php的源码包在同一个目录,--with-apache=../apache_1.3.27是指向源码解压的目录

ok!静态编译完成。

再看DSO动态编译方法:

首先编译安装apache

tar zvxf apache_1.3.29
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max
make
make install

so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。

然后编译php

tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs
make
make install

然后修改httpd.conf,方法同静态编译的方法

OK,DSO动态编译就完成了!

接下来我们讲apache2.0.46+php4.3.2的动态编译方法

一样先编译安装apache

tar zvxf httpd-2.0.46.tar.gz
cd httpd-2.0.46
./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
make
make install
大家注意了--enable-so相当与1.3.27的--enable-module=so,而--enable-mods-shared=most又等同与以前的--enable-shared=max

然后还是编译PHP

tar zvxf php4.3.2.tar.gz
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs
make
make install

注意这里是apxs2!!

修改httpd.conf与1.3.27也有所不同,大家寻找Add Type application/x-tar .tgz 在下面添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

另外要显示中文的话,请修改:
AddDefaultCharset gb2312

转载于:https://www.cnblogs.com/the-study-of-linux/p/5215395.html

相关文章:

  • Navicat 结构同步常规设置讲解
  • hbase参考官方文档搭建完全分布式环境遇到的问题
  • 【设计模式】GoF设计模式学习总结
  • 毛毛雨的博客乐园—内容简介
  • Android布局— — —表格布局
  • Linux统计文件/目录数量ls -l | grep ^- | wc -l匹配开头和结尾
  • 老男孩28期运维张帅学习Linux决心书
  • Mongo读书笔记2 -- 数据类型
  • OC----简单的购物系统----
  • spring四种依赖注入方式
  • Swift2.0(17)内存管理ARC
  • 转:Vim实战指南(四):ex命令
  • Eclipse配置信息
  • 如何在CentOS 5/6上安装EPEL源
  • csu 1600: Twenty-four point
  • 时间复杂度分析经典问题——最大子序列和
  • Angular数据绑定机制
  • canvas 五子棋游戏
  • css的样式优先级
  • hadoop集群管理系统搭建规划说明
  • java取消线程实例
  • Js基础——数据类型之Null和Undefined
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Puppeteer:浏览器控制器
  • PV统计优化设计
  • spring-boot List转Page
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 订阅Forge Viewer所有的事件
  • 排序(1):冒泡排序
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 原生Ajax
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​Python 3 新特性:类型注解
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #etcd#安装时出错
  • (NSDate) 时间 (time )比较
  • (分享)自己整理的一些简单awk实用语句
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 表达式计算:Expression Evaluator
  • .NET 反射的使用
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .sh 的运行
  • /etc/shadow字段详解
  • @Not - Empty-Null-Blank
  • [ C++ ] STL---string类的使用指南
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [Enterprise Library]调用Enterprise Library时出现的错误事件之关闭办法