CentOS编译安装php扩展gd
//安装平台:
centos 5.5 x86_64
//软体:
详见安装过程
//安装基础依赖包
>yum -y install gcc gcc-c++ autoconf ncurses
//编译安装zlib
>tar zxvf zlib-1.2.5.tar.gz
>cd zlib-1.2.5
>./configure --prefix=/usr/local/zlib
>make
>make install
//编译安装 libpng
>tar zxvf libpng-1.5.1.tar.gz
>cd libpng-1.5.1
>./configure --prefix=/usr/local/libng
>make
>make install
//编译安装 jpeg
>tar zxvf jpegsrc.v8c.tar.gz
>cd jpeg-8c/
>./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
>make
>make install
>ln -s /usr/local/libjpeg/lib/* /usr/lib/
//编译安装 freetype
>tar zxvf freetype-2.4.4.tar.gz
>cd freetype-2.4.4
>./configure --prefix=/usr/local/freetype
>make
>make install
//编译安装 fontconfig
>tar zxvf fontconfig-2.8.0.tar.gz
>cd fontconfig-2.8.0
>./configure --with-freetype-config=/usr/local/freetype/bin/freetype-config
>make
>make install
//编译安装libxml
>tar zxvf libxml2-2.7.4.tar.gz
>cd libxml2-2.7.4
>./configure --prefix=/usr/local/libxml
>make
>make install
//编译安装libiconv
>tar zxvf libiconv-1.13.1.tar.gz
>cd libiconv-1.13.1/
>./configure --prefix=/usr/local/libiconv
>make
>make install
//编译安装libmcrypt
>tar zxvf libmcrypt-2.5.8.tar.gz
>cd libmcrypt-2.5.8
>./configure --prefix=/usr/local/libmcrypt
>make
>make install
//编译安装gettext
>tar zxvf gettext-0.18.1.1.tar.gz
>cd gettext-0.18.1.1
>./configure
>make
>make install
//编译安装 GD
>tar zxvf gd-2.0.35.tar.gz
>cd gd-2.0.35
>vi gd_png.c
include "/usr/local/libpng/include/png.h"
>./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng --with-libiconv-prefix=/usr/local/libiconv --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg --with-fontconfig=/usr/local/fontconfig/ --enable-m4_pattern_allow
>make
>make install
整合php & gd
对于php5.4有个bug,在 "gdIOCtx"结构体中没有 "data" 这个成员,解决办法
$vi <gd_dir>/include/gd_io.h
/*
typedef struct gdIOCtx
{
int (*getC) (struct gdIOCtx *);
int (*getBuf) (struct gdIOCtx *, void *, int);
void (*putC) (struct gdIOCtx *, int);
int (*putBuf) (struct gdIOCtx *, const void *, int);
int (*seek) (struct gdIOCtx *, const int);
long (*tell) (struct gdIOCtx *);
void (*gd_free) (struct gdIOCtx *);
void (*data);// 新添加这一行
}
*/
整合php & gd
$ cd <php源文件>/ext/gd
$ /usr/local/php5/bin/phpize //生成configure
$ ./configure --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/jpeg8d --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-zlib-dir=/usr/local/zlib --with-php-config=/usr/local/php5/bin/php-config
$ make && make install
$ vi /usr/local/php5/apache/php.ini
/*
extension=gd.so //添加这一行
*/
$ apache restart
注:不知道是不是动态扩展gd的原因, 这个时候访问服务器并不能打开网页, 查找apache error_log, 上面写着:
/usr/local/apache//bin/httpd: symbol lookup error: /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gd.so: undefined symbol: gdJpegGetVersionString
和
/usr/local/apache//bin/httpd: symbol lookup error: /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gd.so: undefined symbol: gdPngGetVersionString
在网上找了好长时间, 找不到解决这个问题的办法, 或者这个问题引起的原因, 我想到了一个办法作为临时的解决办法:修改gd.c
$ vi $ cd <php源文件>/ext/gd/gd.c
/*
在这个文件的下面添加
# include <{libpng安装目录}png.h>
# include <{libjpeg安装目录}jpeglib.h>
const char * gdJpegGetVersionString()
{
switch(JPEG_LIB_VERSION) {
case 62:
return "6b";
break;
default:
return "unknown";
}
}
const char * gdPngGetVersionString()
{
return PNG_LIBPNG_VER_STRING;
}
*/
然后重新整合php & gd, 问题解决,可以生成验证码.
转载于:https://www.cnblogs.com/keethebest/archive/2013/06/13/3133906.html
CentOS编译安装php扩展gd相关推荐
- 编译安装php apache,CentOS编译安装Apache2.4+PHP5.6
CentOS下YUM安装PHP和Apache是比较简单的,可是一般默认情况下的PHP版本是5.3,Apache版本是2.2.因为考虑到PHP版本和Apache版本越高性能越好,就打算在CentOS下编 ...
- php7.1安装mysqli扩展,centos php7 安装mysqli扩展心得
在新配服务器时发现,php无法连接到mysql.通过phpinfo发现.根本没有显示mysqli的相关配置.经过一系列研究.总结了下.: 第一步: 在phpinfo里没有mysqli配置,原因是安装p ...
- docker php安装gd扩展_docker安装php扩展gd库
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...
- centos 编译安装mysql
centos 编译安装mysql,请看附件 转载于:https://blog.51cto.com/3131854/1883713
- 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级
编译安装 Redis 扩展 - phpredis 编译安装 Swoole 扩展 编译安装 Pcntl 扩展 编译安装 Sockets 扩展 编译安装 Event 扩展 编译安装 Mongodb 扩展 ...
- CENTOS编译安装APACHE 2.4.6笔记
之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...
- Centos编译安装Apache 2.4.6笔记 配置
转载链接:http://www.onepx.com/centos-apache-246.html 之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 201 ...
- CentOS编译安装Qt(Qt可使用静态编译编译器)
CentOS编译安装Qt(Qt可使用静态编译编译器) 文章目录 前言 下载Qt源码 编译安装--以4.7.4为例 安装QtCreator 设置编译器 附加--Windows Qt静态编译的方法(以5. ...
- centos php安装redis扩展,Centos7编译安装redis、php安装phpredis扩展
解压 进入 make: # tar zxvf redis-4.0.9.tar.gz # cd redis-4.0.9/ # make # cd src # make install 为了方便管理,将R ...
最新文章
- 红曲面怎么做_新年就要“红”运当头 买款高颜值红色旗舰让年味更浓
- 使用createrepo自建yum源
- mysql 全值匹配什么意思
- 互联网大厂必学技能:压力测试!
- matlab绘图z=sin(x,用matlab编写函数文件,实现绘制函数 z= sin(x+y)/(x+y)在【-2:2,-2:2]的图像...
- Wyn Enterprise 核心功能:系统集成
- python前端界面模板_Python编程flask使用页面模版的方法
- python网络爬虫与信息提取视频_Python网络爬虫与信息提取入门5
- python简单代码-手把手教你用Python创建简单的神经网络(附代码)
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(四)
- python 使用numpy计算混淆矩阵
- 当AI学会共情,港科大新研究赋予Chatbot同理心 | 一周AI最火论文
- 算法-舍弃不吉利数字
- 【WSN通信】基于matlab粒子群算法改进能量均衡高效WSN LEACH协议【含Matlab源码 1562期】
- ORACLE 金额转大写中文
- AR体感游戏,体感互动游戏,AR大屏互动
- mysql从数据库查询的时间与实际时间相差8小时(时区问题)
- 从零开始创建一个Android主屏幕Widget
- 如何更新/升级 python 库?
- 02_C++实现多线程服务器代码(linux系统)