zoukankan      html  css  js  c++  java
  • php5.6.30编译gd库并安装依赖freetype

    php5.6.30编译gd库并安装依赖freetype

    应用使用的是php5.6.30编译的时候没有加gd扩展,需要手动编译进去


    php5.6.30环境报错Call to undefined function ImageCreate()  编译安装 gd库



    --with-freetype=

    发现php5.6.30没有加载gd库

    # php -i |grep configure
    Configure Command =>  './configure'  '--prefix=/usr/local/php-5.6.30_fpm' '--with-openssl=/usr/local/lab/openssl' '--with-libxml-dir=/usr' '--with-zlib-dir=/usr/local/lab/zlib-1.2.8' '--with-bz2' '--enable-calendar' '--with-curl=/usr/local/lab/curl-7.36.0' '--enable-dba' '--enable-exif' '--enable-ftp' '--with-jpeg-dir=/usr/local/lab/libjpeg-6b' '--with-png-dir=/usr/local/lab/libpng-1.6.10' '--with-freetype-dir=/usr/local/lab/freetype-2.5.4' '--with-gettext' '--enable-mbstring' '--with-ldap=/usr/local/openldap-2.4.23' '--with-mcrypt=/usr/local/lab/libmcrypt-2.5.8' '--with-mhash=/usr/local/lab/mhash-0.9.9.9' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-unixODBC=/usr/local/lab/unixODBC-2.3.2' '--with-pdo-dblib=/usr/local/lab/freetds-0.92' '--enable-zip' '--with-iconv-dir=/usr/local/lab/libiconv-1.14' '--with-fpm-user=apache' '--with-fpm-group=users' '--enable-fpm' '--with-xmlrpc' '--enable-soap' '--enable-mbregex' '--enable-opcache' '--enable-inline-optimization' '--enable-xml' '--enable-sockets' '--disable-debug

    解决办法:

    编译的时候没有把gd库编译进去,需要再次加进去,还好gd库是扩展库,不需要重新编译php整个程序

    1.下载php5.6.30源码
    php源码下载站
    https://www.php.net/releases/
    源码下载很慢,通过阿里云国外下载(几秒钟),然后传到国内阿里云的服务器速度较快
    直接国内阿里云下载也很慢

    获取源码解压
    # wget https://www.php.net/distributions/php-5.6.30.tar.gz
    # tar -zxf php-5.6.30.tar.gz
    # cd php-5.6.30/ext/gd

    在源码目录执行phpize
    # /usr/local/php/bin/phpize

    # 重新编译
    # ./configure --with-php-config=/usr/local/php/bin/php-config --with-gd
    # make && make install

    Build complete.
    Don't forget to run 'make test'.

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

    # 将扩展库加入到扩展库文件夹中

    cp /usr/local/php-5.6.30_fpm/lib/php/extensions/no-debug-non-zts-20131226/ /usr/local/php/lib/php/extensions

    编辑php.ini加入gd.so扩展库

    # vim /usr/local/php/php.ini
    extension_dir=/usr/local/php/lib/php/extensions
    extension=gd.so

    # 重新启动php
    /etc/init.d/php-fpm restart

    # 验证
    # php -m|grep gd
    gd

    这个事情还有后续,发现gd库缺少freetype支持,导致部分验证码功能失效,需要重新编译带freetype参数的
    cd /usr/local/src/php-5.6.30/ext/gd
    make clean
    /usr/local/php/bin/phpize
    # 编译带freetype支持的gd库,如果没有freetype组件需要手动编译安装
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-gd --with-freetype-dir=/usr/local/lab/freetype-2.5.4
    make && make install

    # 替换现有的gd.so文件
    cp /usr/local/php-5.6.30_fpm/lib/php/extensions/no-debug-non-zts-20131226/gd.so /usr/local/php/lib/php/extensions

  • 相关阅读:
    Oracle-数据库的隔离级别测试
    Oracle Filter执行计划
    webug4.0靶场之文件包含
    webug4.0靶场之文件上传
    webug4.0靶场之越权查看admin
    webug4.0靶场之支付漏洞
    webug4.0靶场之越权修改密码
    webug4.0靶场通关之XSS
    webug4.0靶场通关之任意文件下载
    MSF学习之旅之信息收集工具使用
  • 原文地址:https://www.cnblogs.com/reblue520/p/13827418.html
Copyright © 2011-2022 走看看