首页 > 代码库 > apache和php动态加载模块

apache和php动态加载模块

              如何动态增加Apache和PHP模块


一.Apache动态增加模块:

cd /home/redhat/httpd-2.2.15/modules/filters

/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c

apxs命令参数说明:
-i  此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a  此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A  与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c  此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。

重启生效:/usr/local/apache2/bin/apachectl restart


二.PHP动态增加模块:

以添加memcache模块为例,

wget http://pecl.php.net/get/memcache-3.0.8.tgz

tar zxf memcache-3.0.8.tgz 

cd memcache-3.0.8

/usr/local/php/bin/phpize         #通过phpize添加php扩展插件

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/   #查看是否有memcache.so文件

配置php.ini:

cd /usr/local/php/lib

cp php.ini php.ini.bak            #备份配置文件

vim php.ini搜索extension_dir,在后面加入插件路径/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/,注意php.ini的注释符为;号,去掉注释符后必须顶格

并且增加一行extension = memcache.so

kill -SIGUSR2 `cat /app/logs/php-fpm.pid`  (Nginx下平滑重启php生效)

最后查看phpinfo页面,搜索memcache,如果有的话表示安装成功



本文出自 “linux运维” 博客,转载请与作者联系!

apache和php动态加载模块