zoukankan      html  css  js  c++  java
  • linux下PHP手动添加扩展库


    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

    Image(5)


    make


    Image(6)


    make install


    Image(7)


    这样,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后出现如下错误:

    Image(8)

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

    Image(9)

  • 相关阅读:
    进程Queue
    进程ID
    多进程
    queue 生产者、清费者
    让静态页面显示用户登录状态
    apache2.2 + tomcat6 整合以及集群配置整理
    linux安装rzsz
    http_load
    用Ant实现Java项目的自动构建和部署
    Openfire:安装指南
  • 原文地址:https://www.cnblogs.com/ryanlamp/p/5050139.html
Copyright © 2011-2022 走看看