DSO模块加载模块提供了灵活性。
模块的类型:
核心模块
标准模块
第三方模块
使用apxs编译安装模块
首先查看已经安装过mod_so模块了没
httpd -M
使用apxs来进行编译安装模块
安装mod_txt模块
cd /usr/local/src
wgethttp://apache.webthing.com/mod_txt/mod_txt.c
/usr/local/apache2/bin/apxs -c -i -a mod_txt.c
l然后修改配置文件,并在httpd.con文件中的合适位置添加如下指令
AddOutputFilter text-filter .txt
AddType text/html .txt
TextHeader /path/to/header-file
TextFooter /path/to/footer-file
再重启服务器,就可以用了
使用静态链接模块
编译时直接指定 ./configure --enable-modules=most
就一句话,编译时指定静态链接的模块。再make && make install
编译好就可以用了
使用动态链接模块
动态链接模块的使用方法
首先查看已经安装过mod_so模块了没
httpd -M
如果想使用某个动态链接的模块
Apache2.X
要在httpd.conf里加
LoadModule vhost_alia_module modules/mod_vhost_alias.so
LoadModule ssl_module modules/mod_ssl.so
才算启用模块
PS:LoadModule只能加载Apache的根目录的模块,要想加载其他路径的模块,需要用LoadFile换LoadModule
.老版本里DSO模块装入的顺序决定了Apache使用它们处理URL的顺序
Apache 1.3.X动态链接模块的使用方法
必须先用LoadModule将其加载,然后使用AddModule来启用
PS:在这个版本里,即使是静态编译的模块也需要用AddModule指令来启用。
为Apache添加新模块
天真的以为用yum install -y php可以直接把php这个模块动态加载到Apache中,没什么副作用。副作用是会重新安装一个rpm包的apache。把php动态加载到新安装的那个apache上去了。而不是动态安装到之前的源码包上。
以DSO的方式安装PHP到Apache2.x
wget http://源码包的位置
tar zxvf 源码包的位置
cd 源码包解压后的位置
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
虽说make install会自动在Apache的httpd.conf文件中加入对php模版的调用,但还是建议检查一下httpd.conf是不是加了那些内容。
2.x的apache不支持php静态编译进apache了,只有1.3.x能静态编译
第一次编译Apache
./configure --prefix=/usr/local/apache2
安装PHP
./configure --prefix=/usr/local/php5.4 --with-mysql=/usr/local/mysql5.0.67 --with-apache=../apache_1.3.9
make && make install
第二次编译Apache
./configure --prefix=/usr/local/php5.4 --active-module=src/modules/php5/libphp5.a
make && make install