php编译后动态扩展模块

不需要重新编译php,可以动态扩展php模块

这里以扩展mysqli为例:

1.安装phpize需要的依赖包

# yum install m4 autoconf

2.生成编译mysqli的configure

进入PHP源码目录中扩展模块目录ext
# cd /app/httpd/php-5.6.34/ext/mysqli

#/usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

3.查下当前PHP的扩展目录

# /usr/local/php/bin/php-config --extension-dir
/usr/local/php-5.6.34/lib/php/extensions/no-debug-non-zts-20131226

4.编译mysqli

# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config

#make && make install clean

Installing shared extensions:     /usr/local/php-5.6.34/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files:           /usr/local/php-5.6.34/include/php/

5.检查

#ll /usr/local/php-5.6.34/lib/php/extensions/no-debug-non-zts-20131226/
-rwxr-xr-x 1 root root  715322 Mar  5 16:11 mysqli.so

6.添加启用mysqli

#vim /etc/php.ini

找到[MySQLi]配置块
添加
extension=mysqli.so

7.重启php

原文地址:http://blog.51cto.com/191226139/2083108

时间: 2024-10-16 23:32:11

php编译后动态扩展模块的相关文章

LAMP架构-PHP动态扩展模块

LAMP架构-PHP动态扩展模块 生产环境中,为保障网站正常运行,不允许再次编译php,那么缺少或漏安装了模块,可以通过单独安装模块的方法来增加到php下面: 查看php加载的模块 /usr/local/php/bin/php -m 类似于apache的-M一样 举例:增加redis.so模块 下载模块 cd /usr/local/src/ wget https://codeload.github.com/phpredis/phpredis/zip/develop 改名和解压 mv develo

PHP动态扩展模块

编译源码包需要./configure 然后编译一个.so的文件报错少一个包安装包正常显示ls 目录下有./configure文件查询模块位置编辑配置文件编辑配置文件增加redis.so验证是否加载在PHP源码包目录下有个/ext/目录下面很多模块查询没有zip 模块进入到zip模块里面直接编译编译安装./configuremake make install 编译完成 php的错误日志级别 error_report ; E_ALL 所有错误和警告(除E_STRICT外); E_ERROR 致命的错

限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块

1. 限定某个目录禁止解析php(有些目录用户可以上传文件或图片,可能会被恶意者上传其它文件):编辑:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf 加入: <Directory /var/www/222/upload> php_admin_flag engine off </Directory>   建立目录:mkdir /var/www/222/upload -p写php文件:echo "<?php phpin

Linux GCC编译使用动态、静态链接库 (转)

原文出处:http://blog.csdn.net/a600423444/article/details/7206015 在windows下动态链接库是以.dll后缀的文件,二在Linux中,是以.so作后缀的文件. 动态链接库的好处就是节省内存空间. 1.Linux下创建动态链接库 在使用GCC编译程序时,只需加上-shared选项即可,这样生成的执行程序即为动态链接库. 例如有文件:hello.c x.h main.c [plain] view plaincopy 编译:gcc hello.

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

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

QT 静态编译后中文可能会出现乱码

QT 静态编译后中文可能会出现乱码.这是因为处理文字编码的 libqcncodecs 库是以 plugin 形式存放在 QT 静态编译目录/plugs/codecs/libqcncodecs.a 文件中.文字乱码,需要加入入字体插件在 main.cpp 文件内:#include <QtPlugin>Q_IMPORT_PLUGIN(qcncodecs) 然后在工程 pro文件中加入库:QTPLUGIN += qjpeg qcncodecs或者LIBS += QT 静态编译目录/plugs/cod

运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory

运行编译后的程序报错  error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory -------------------------------------------------------------------------------------------------------------------------------------

使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中&amp;lt;meta-data&amp;gt;变量的值

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49247815 文章出自:薛瑄的博客 你也能够查看我的其它同类文章.也会让你有一定的收货 关于使用Gradle来控制版本号和生成不同版本号的代码.我总结了三篇文章,网上关于这些知识,都比較零散.我在学习这些的之前.根本不知道还有这种方法.所以说不知道并不可怕,可怕的是不知道自己不知道.相信这三篇文章,会给你不少灵感 Gradle构建控制Log开关--BuildConfig\自己定义

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

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