1.进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:

cd curl

执行phpize生成编译文件,phpize在PHP安装目录的bin目录下

/usr/local/php/bin/phpize

运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF

environment variable is set correctly and then rerun this script.“,需要安装autoconf:

yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)

生成配置文件,并编译生成模块:

/usr/local/php/bin/phpize

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


make



make install



这样,curl.so就被复制到PHP对应目录(如:/usr/local/php/lib/php/extensions/no-debug-zts-20131226)

2.修改配置

在php.ini里,设置扩展目录:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226"

并添加扩展模块引用:

extension = curl.so

3.检查并重启Apache

/usr/local/php/bin/php -v

执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查

补充:

1.需要安装自己手动编译的扩展包时在ext目录中如下指定

以下为在/ext/gd文件下安装gd库是顺便使其支持freetype

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

2.在安装pdo_mysql扩展时

/usr/local/php/bin/phpize

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

make后出现如下错误:

意思是在php_pdo_mysql_int.h的第27行包含文件时没有找到他他所需的mysqlnd.h 但实际上在ext/mysqlnd中能找到mysqlnd.h因此大致是他的包含路径有问题 ,编辑php_pdo_mysql_int.h  定位到27行改成如下(改成能直接访问到相应头文件的路径)

linux下PHP手动添加扩展库的更多相关文章

  1. linux下Redis与phpredis扩展安装

    ++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...

  2. linux下查看和添加PATH环境变量

    linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PA ...

  3. GCC -l选项:手动添加链接库

    链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件.在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等)替代,以完成程 ...

  4. gcc -l:手动添加链接库

    链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件.在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等)替代,以完成程 ...

  5. linux下为php添加mongodb扩展

    基于本博客yum安装的lamp环境,phpize 位于 /usr/bin,php-config 位于/usr/bin,php.ini 位于/etc/ 1.首先从http://pecl.php.net/ ...

  6. linux 下安装 php kafka 扩展

    我们使用官方推荐 php kafka 扩展 phpkafka,由于该扩展是基于 librdkafka 开发,所以我们首先需要安装 librdkafka 下载地址:http://kafka.apache ...

  7. Linux下C语言编程中库的使用

    零.问题 1. 为什么要用到库? 2. 我要用一个库,但是,尼玛命令行上该怎么写呢?或者说库文件如何使用? 3. Linux的库在那些地方? 4. 什么是静态库,什么是动态库,二者有啥区别? 5. 常 ...

  8. Linux下编译、使用静态库和动态库 自己测过的

    每个程序实质上都会链接到一个或者多个的库.比如使用C函数的程序会链接到C运行时库,GUI程序会链接到窗口库等等.无论哪种情况,你都会要决定是链接到静态库(static libary)还是动态库(dyn ...

  9. linux下编译ffmpeg 引入外部库x264

    Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure ...

随机推荐

  1. 第一章 使用功能测试协助安装Django

    1.1 第一个简单的测试--断言 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://lo ...

  2. table添加行

    需求是要实现表格的动态增加与删除,并且保留标题行和首行,找了半天jq插件,没找到合适的,所以自己写了个demo <!DOCTYPE html> <html> <head& ...

  3. GTX使用(更新中)

    1.XILINX GTX介绍GTX是Virtex系列 FPGA上的低功耗吉比特收发器,在V6芯片上GTX工作带宽范围是750Mb/s到6.6Gb/s,支持收发双向,且收发双向独立.GTX接收和发送方向 ...

  4. spring源码研究1 如何导入源码

    环境 jdk8 windows8 1.下载源码 https://github.com/spring-projects/spring-framework 2.编译为eclipse项目 源码下载无法直接导 ...

  5. POJ - 1845 G - Sumdiv (唯一分解定理)

    Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S m ...

  6. L255 Learning to say no brings a thrill of freedom

    I am not sure who came up with that thing about never saying yes to something in the distant future ...

  7. Python 基础学习day1

    1.计算机的组成 CPU:相当于人的大脑,预算中心. 内存:临时加载数据或者程序. 缺点:断电即消失. 硬盘:存放所有的数据,输入输出设备. 2.什么是操作系统. 调控所有硬件与软件的中间介质. 3. ...

  8. setcookie

    cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量 首先声明,浏览的Cookie操作都是通过HTTP Head ...

  9. sql 按字段指定值排序

    这个需要在排序语句中使用条件判断 例如:表[Table_temp]中列[col1]为字符,属性为varchar(10),排序时需要按照B.A.C的顺序显示,则可按照以下SQL语句: select * ...

  10. 目录文件管理及vim

    一.查看(七种看) cat tac nl more less ====================== head tail tail -f 看动态更新尾部的信息 ================= ...