服务器环境 centos
php 版本是 5.6.15, 源码编译安装
编译时未把 freetype 编译安装, 造成了如题所示的错误.
解决此问题时, 走了许多错路.
现把解决步骤记录一下
1. 可以使用 yum 安装一些所需的依赖库
yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel
2. 进入 php 源码目录, 我的目录是: /opt/source/php-5.6.15
可以先执行 make clean 作用是清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
编译时添加 --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd
我的配置参数如下:
'./configure'
'--prefix=/usr/local/php'
'--with-mysql=/opt/source/mysql'
'--with-config-file-path=/usr/local/php/etc'
'--enable-soap'
'--enable-pdo'
'--with-pdo-mysql'
'--with-snmp'
'--enable-wddx'
'--with-openssl'
'--enable-fpm'
'--with-mcrypt'
'--enable-mbstring'
'--with-curl'
'--with-mhash'
'--enable-zip'
'--with-pcre-regex'
'--enable-sysvsem'
'--enable-sysvshm'
'--enable-pcntl'
'--enable-mbregex'
'--enable-inline-optimization'
'--with-bz2'
'--with-zlib'
'--enable-sockets'
'--with-png-dir'
'--with-freetype-dir'
'--with-jpeg-dir'
'--with-gd'
'--with-mysqli'
不出意外的话, 此处会成功配置成功, 并生成配置文件, 然后执行 make && make install
3. 编译成功之后, 记得要使用编译之后的 php 替换掉环境变量里的 php 命令(如果你把你本地 php 编译环境放入了环境变量的话, 这步可以忽略)
比如我这里, 就会执行如下两条命令:
cp /usr/local/php/bin/php /usr/bin/php
cp /usr/local/php/sbin/php-fpm /usr/sbin/php-fpm
运行 phpinfo() 查看, 如果有如下图中红框中的三行, 即表示安装成功