PHP Fatal error: Call to undefined function imagettftext()
一、问题描述
安装了环境,发现验证码显示不了,查看日志:error: Call to undefined function imagettftext(),然后你去搜索百度,原因千千万,帖子里的解决方法也千千万,有的是缺gd库支持(没安装),也有可能是gd库要依赖的库等没有安装,或者说是库版本不匹配等,笔者我也捣弄了一大堆解决方式,最后的建议还是重新编译安装php,各种曲折大家可以参考文章:http://hily.me/blog/2010/03/php-undefined-imagettfbbox/
二、重新编译安装php
1、首先make clean
---> 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件,然后清除之前php编译产生的一些文件,清除残留
检查当前安装的PHP包 **
这个命令是删除不干净的
#yum remove php 因为使用这个命令以后再用
#php -v 还是会看到有版本信息的。。。。。
必须强制删除
#rpm -qa|grep php 提示如下
#php-pdo-5.1.6-27.el5_5.3
#php-MySQL-5.1.6-27.el5_5.3
#php-xml-5.1.6-27.el5_5.3
#php-cli-5.1.6-27.el5_5.3
#php-common-5.1.6-27.el5_5.3
#php-gd-5.1.6-27.el5_5.3 注意卸载要先卸载没有依赖的 pdo是mysql的依赖项;common是gd的依赖项; 例如:# rpm -e php-pdo-5.1.6-27.el5_5.3
error: Failed dependencies:php-pdo is needed by (installed) php-mysql-5.1.6-27.el5_5.3.i386 所以正确的卸载顺序是:
# rpm -e php-mysql-5.1.6-27.el5_5.3
# rpm -e php-pdo-5.1.6-27.el5_5.3
# rpm -e php-xml-5.1.6-27.el5_5.3
# rpm -e php-cli-5.1.6-27.el5_5.3
# rpm -e php-gd-5.1.6-27.el5_5.3
# rpm -e php-common-5.1.6-27.el5_5.3 再用# php -v 查看版本信息已经没有提示
安装之前可以运行一下命令 ,安装必要的依赖包:
yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
2、进入php的源码目录,重新进行配置,安装,以下是参考:
2.1、配置
./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-gd --with-libxml-dir --with-openssl --enable-fpm --enable-xml --enable-sockets --enable-pdo --with-pdo-mysql=/usr/local/mysql --with-mcrypt --with-bz2
2.2、运行编译和安装命令
make && make install
2.3、添加PHP和PHP-FPM配置文件。
cp /usr/local/src/php-5.6.23/php.ini-production /etc/php.ini cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf sed -i ‘[email protected];pid = run/[email protected] = /usr/local/php/var/run/[email protected]‘ php-fpm.conf
2.4、添加PHP-FPM启动脚本。
cp /usr/local/src/php-5.6.23/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
2.5、添加PHP-FPM至服务列表并设置开机自启。
chkconfig --add php-fpm chkconfig --list php-fpm chkconfig php-fpm on
2.6、启动服务。
service php-fpm start
2.7、添加Nginx对FastCGI的支持
2.7.1、备份默认的Nginx配置文件。
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
2.7.2输入命令vi /etc/nginx/nginx.conf
打开Nginx的配置文件,按下i
键,在所支持的主页面格式中添加php格式的主页,类似如下:
location / { root /usr/local/nginx/html; index index.php index.html index.htm; }
2.7.3、取消以下内容前面的注释:
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
2.7.4、将root html;
改成root /usr/local/nginx/html;
。
2.7.5、将fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改成fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
。
2.7.6、按下Esc
键,然后输入:wq
并回车以保存并关闭Nginx配置文件。
2.7.7、输入命令service nginx reload
重新载入Nginx的配置文件。
原文地址:https://www.cnblogs.com/hysen/p/10849988.html