Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法:
1. 一是完全重新编译Apache, 再安装
2. 编译模块为SO文件,使用LoadModule指令加载扩展模块。
 
apache安装后追加mod_rewrite
1.apache1.3
apache_1.3.34.tar.gz 解压后的目录为 /root/apache_1.3.34 文中简称为“源码目录” apache安装目录 /usr/local/apache 文中简称为“目标目录” 步骤: 1、Apache安装rewrite模块的时候需要DBM支持,否则无法编译,所以首先要安装一个GDBM 下载地址:ftp://ftp.gnu.org/gnu/gdbm/  安装步骤: 进入安装目录,  ./configure  make  make install  make install-compat (最后行也要执行。否则无法编译出ndbm.h头文件) 如果您不能确定服务器上是否已经装有DBM,那么可以安装一下。否则这步可以跳过。 2、现在到apache源码目录的标准模块目录中(/root/apache_src/src/modules/standard/)中,使用如下指令编译出so文件: /usr/local/apache/bin/apxs -c mod_rewrite.c -lgdbm 即可得到mod_rewrite.so文件。 备注:"-lgdbm"是用为说明在编译mod_rewrite.c时要把gdbm链接进来。这样在第6步启动apache时就不会报出"dbm fetch"的错误了。
3、现在让apache的apxs来自动向http.conf配置文件中加入LoadModule语句并将mod_rewrite.so文件拷贝到apache/libexec目录 /usr/local/apache/bin/apxs -i -A -n rewrite /root/apache_1.3.34/src/modules/standard/mod_rewrite.so  备注:命令中的rewrite参数是告诉apxs命令mod_rewrite.so文件中的模块名。在命令执行后,apxs会在LoadModule中为rewrite加上"_module"以标名模块名称。 如果你在启动apache时发现总是给出“不能定位API”之类的错误,那就是说明LoadModule后面的模块名的语法要根据您的apache版本加以改变。 4、停止apache  apache/bin/apachectl stop 5、运行配置文件检查命令  apache/bin/apachectl configtest 如显示Syntax OK,则表示整个操作成功。那么可以到第6步。否则根据提示信息进行调试。但只要按照此文所说进行操作是不会出错的。 6、启动apache  apache/bin/apachectl start
 
2.apache2.
增加mod_rewrite模块 # find . -name mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件 # cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录 # /usr/local/apache/bin/apxs -c mod_rewrite.c //apxs应指定绝对路径,在你当前正在使用apache的bin目录里 # /usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.la  如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。 编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下: LoadModule rewrite_module modules/mod_rewrite.so 这时,你的apache应该已经支持rewrite了。 完成之后,重启服务器apache. 重启apache出现如下错误: www# /usr/local/apache/bin/apachectl restart httpd: Syntax error on line 54 of /usr/local/apache/conf/httpd.conf: Can't locate API module structure `mod_rewrite_module' in file /usr/local/apache/modules/mod_rewrite.so: Undefined symbol "mod_rewrite_module"
httpd.conf中为 LoadModule mod_rewrite_module modules/mod_rewrite.so 改为 LoadModule rewrite_module modules/mod_rewrite.so 启动正常!

apache动态添加模块的更多相关文章

  1. 【01】Nginx:编译安装/动态添加模块

    写在前面的话 说起 Nginx,别说运维,就是很多开发人员也很熟悉,毕竟如今已经 2019 年了,Apache 更多的要么成为了历史,要么成为了历史残留. 我们在提及 Nginx 的时候,一直在强调他 ...

  2. Nginx动态添加模块 平滑升级

    已经安装好的Nginx动态添加模块 说明: 已经安装好的Nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 这里已安装第三方nginx-rtmp-module模块为例 nginx的模块是需要重 ...

  3. 【Nginx】如何为已安装的Nginx动态添加模块?看完我懂了!!

    写在前面 很多时候,我们根据当时的项目情况和业务需求安装完Nginx后,后续随着业务的发展,往往会给安装好的Nginx添加其他的功能模块.在为Nginx添加功能模块时,要求Nginx不停机.这就涉及到 ...

  4. 十三、给已安装的nginx动态添加模块

    给已安装的nginx动态添加模块说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢?具体:这里以安装 --with-http_ssl_module模块为例nginx的模块是需要 ...

  5. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  6. Linux下,Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  7. Nginx动态添加模块

    前言 有时候要使用已安装好的Nginx的功能时,突然发现缺少了对应模块,故需对其进行动态添加模块. 操作 # 查看已安装模块 [root@kazihuo ~]# nginx -V nginx vers ...

  8. 为Apache动态增加模块

    Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法: 1. 一是完全重新编译Apache, 再安装 2. 编译模块为SO文件,使用LoadModule指令加载扩展模块. ...

  9. 不重装nginx实现动态添加模块

    如果项目在提供服务的过程中,因为需求使然,需要对nginx进行模块的动态添加,可以按照如下流程进行操作 一.查看nginx当前已经安装了那些模块 1) 进入nginx执行文件目录 cd   /usr/ ...

随机推荐

  1. D3.js:坐标轴

    坐标轴: 是可视化图表中经常出现的一种图形,由一些列线段和刻度组成.坐标轴在 SVG 中是没有现成的图形元素的,需要用其他的元素组合构成.D3 提供了坐标轴的组件,如此在 SVG 画布中绘制坐标轴变得 ...

  2. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...

  3. c#dalegate invoke及AsyncCallback使用

    public delegate void AsyncDelegate();        private AsyncDelegate asyncDl; asyncDl = new AsyncDeleg ...

  4. wife信号如何传播

    方法一:像哈利波特一样穿墙而出 无论是wife信号还是广播信号本质上都属于电磁波.x光穿透力强所以可以穿透人体给体内照相,但是wife信号作为电磁波虽然也可以穿透墙而过,但是他的穿透能力实在是太弱了. ...

  5. windows server 2008系统VPN服务配置

    转自:http://www.softxp.net/article/win2008-vpn/,,仅作自己的笔记用 Windows sever 2008 R2的NPS(network policy ser ...

  6. python3中str的函数

    # 转换# 'capitalize',# 'lower',# 'upper',# 'casefold',# 'swapcase', 大小写互换# 'title',# 'strip',# 'rstrip ...

  7. sql 查询表共多少列

    1.oracle: select count(*) from user_tab_cols where table_name='表名';--表名含英文的话应为英文大写字母 2.mysql: select ...

  8. 在虚拟机上配置linux lab的相关经验

    最近一直在研究怎样在嵌入式开发板上移植linux嵌入式系统,但是不太想花费太多钱购买开发板.然后在网上搜索相关的arm模拟器.有qemu,skyeye,armulator等,在按照网上教程一步一步实践 ...

  9. FZU 2243 Daxia like uber

    枚举,最短路. 求出5个点出发的最短路,然后枚举一下这些点之间走的顺序. #pragma comment(linker, "/STACK:1024000000,1024000000" ...

  10. 消息队列 RabbitMQ 与 Spring 整合使用

    一.什么是 RabbitMQ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消 ...