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] 错误 1make[2]: Leaving directory `/root/gd-2.0.35'make[1]: *** [all-recursive] 错误 1make[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!