环境
- centOS7.2
- thinkPHP5
- 验证码使用的是captcha
问题如下:
本地使用的过程能显示验证码图片,上传到服务器后显示如图:
百度后大致找到是因为服务器当前php未安装GD库,有关GD库的知识查看这里(gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建图表、图形、缩略图以及其他图像的处理操作)。
常规安装GD库命令:
# yum -y install php-gd
如果你服务器上没有重装过php那么上面的命令足以解决问题。
如果报告以下类似错误
错误:php70w-common conflicts with php-common-5.4.16-45.el7.x86_64
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
那么有可能是因为你重装过不同版本的php,并且未清理干净之前版本的php,如此需要使用下面命令(注意:我的php版本是7.0以上的所以使用的是php70w,应视情况而定)
# yum -y install php70w-gd
最后,重启apache server
# service httpd restart
查看结果:
接着,登录,如果报错:
致命错误: Call to undefined function think\mb_strlen()
那么可能是因为服务器php未包含php_mbstring扩展,安装方法:
# yum install php70w-mbstring
重启下apache
# service httpd restart
done!