zabbix 之 PHP

zabbix依赖与PHP的很多组件

./configure  --enable-fastcgi --enable-fpm --prefix=/usr/local/php  --with-config-file-path=/usr/local/php/etc  --with-mysql=mysqlnd  --with-libxml-dir=/usr/local/libxml2/ --with-png-dir=/usr/local/libpng/ --with-jpeg-dir=/usr/local/jpeg8/  --with-freetype-dir=/usr/local/freetype/  --with-gd=/usr/local/gd/  --with-zlib    --with-mcrypt=/usr/local/libmcrypt/  --with-mysqli=mysqlnd --enable-soap   --enable-mbstring=all   --enable-sockets  --with-pdo-mysql=mysqlnd --with-openssl  --enable-xml  --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-bcmath  --with-gettext --with-curl=/usr/local/curl

1,安装libxml2

./configure --prefix=/usr/local /libxml2

 

2,安装libmcrypt

./configure --prefix=/usr/local/libmcrypt

安装完成libmcrypt库以后,不同的linux系统版本有可能还要安装一下libltdl库

可以进入到解压缩的 目录/usr/local/src/libmcrypt-2.5.8下

./configure --enable-ltdl-install

 

3,安装zlib

./configure --prefix=/usr/local/zlib

 

4,安装libpng

./configure --prefix=/usr/local/libpng

 

 

5,安装jpeg8

mkdir /usr/local/jpeg8 &&  mkdir /usr/local/jpeg8/bin  &&  mkdir /usr/local/jpeg8/lib   &&  mkdir /usr/local/jpeg8/include  && mkdir -p /usr/local/jpeg8/man/man1 

./configure \

> --prefix=/usr/local/jpeg8/ \

> --enable-static

 

6,安装freetype

./configure --prefix=/usr/local/freetype

 

 

7,安装atuoconf

./configure && make && make install

 

8 ,安装JD库文件

./configure --prefix=/usr/local/gd  --with-jpeg=/usr/local/jpeg8  --with-png=/usr/local/libpng  --with-freetype=/usr/local/freetype

错误

make[2]: *** [gd_png.lo] 错误 1
make[2]: Leaving directory `/root/gd-2.0.35'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/gd-2.0.35'
make: *** [all] 错误 2

解决办法

vi gd_png.c

找到#include "png.h"改成#include "/usr/local/libpng/include/png.h"

 

错误

configure: error: Please reinstall the BZip2 distribution
解决办法

yum install -y bzip2 bzip2-devel
 

错误

/root/php-5.4.39/ext/gd/gd_ctx.c: 在函数‘_php_image_stream_putc’中:
/root/php-5.4.39/ext/gd/gd_ctx.c:51: 错误:‘struct gdIOCtx’没有名为‘data’的成员
/root/php-5.4.39/ext/gd/gd_ctx.c: 在函数‘_php_image_stream_putbuf’中:
/root/php-5.4.39/ext/gd/gd_ctx.c:58: 错误:‘struct gdIOCtx’没有名为‘data’的成员
/root/php-5.4.39/ext/gd/gd_ctx.c: 在函数‘_php_image_stream_ctxfree’中:
/root/php-5.4.39/ext/gd/gd_ctx.c:67: 错误:‘struct gdIOCtx’没有名为‘data’的成员
/root/php-5.4.39/ext/gd/gd_ctx.c:68: 错误:‘struct gdIOCtx’没有名为‘data’的成员
/root/php-5.4.39/ext/gd/gd_ctx.c:69: 错误:‘struct gdIOCtx’没有名为‘data’的成员
In file included from /root/php-5.4.39/ext/gd/gd.c:103:
/root/php-5.4.39/ext/gd/gd_ctx.c: 在函数‘_php_image_output_ctx’中:
/root/php-5.4.39/ext/gd/gd_ctx.c:158: 错误:‘gdIOCtx’没有名为‘data’的成员
make: *** [ext/gd/gd.lo] 错误 1

解决办法

进入/usr/local/gd
vi /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);

 

/* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

int (*seek) (struct gdIOCtx *, const int);

 

long (*tell) (struct gdIOCtx *);

 

void (*gd_free) (struct gdIOCtx *);

void (*data);

}

gdIOCtx;

 

错误

mbstring.func_overload = 2

更该配置如下

;mbstring.func_overload = 0

重启php-fpm

 

END!

posted @ 2015-12-04 18:35  知_行  阅读(858)  评论(0编辑  收藏  举报