mac php thinkphp5 验证码报错 Call to undefined function think\captcha\imagettftext()


百度一下,是GD库里缺少了freetype支持,然后各种拓展的方法都试了半天,php-v里都生效了,phpinfo里还是不生效,原来是各种文章里都缺少了最关键的一步,修改Apache的配置(我使用的是自带的Apache服务器),找到文件/etc/apache2/httpd.conf ,将以下内容进行注释(就是前面加上#):

#LoadModule php7_module libexec/apache2/libphp7.so

第一步:

curl -s https://php-osx.liip.ch/install.sh | bash -s 7.1

漫长的等待,安装完成之后,进入/usr/local文件夹,看看新编译的文件夹存在不

然后vim ~/.bash_profile 

添加一句 export PATH=这里填写你新安装进来的php版本文件夹和他的路径,格式是/usr/local/php-7.1.21-XXXX/bin:${PATH}

然后:wq  保存好

然后source ~/.bash_profile   更新配置

重启apache   sudo apachectl restart   

输入php-v   看看自己的版本更新没有

最后进行最后一步,修改Apache的配置(我使用的是自带的Apache服务器),找到文件/etc/apache2/httpd.conf

搜索libphp    甭管这行是写的php5 还是php7 的   给注释掉

再重启apache

完事。

总体就是这样,中间可能会经历各种坑,下载版本的时候要耐住性子,70多M,还是国外的,可能要慢一点

 

 

今天从网上下了一用thinkphp写的后台管理系统,安装好之后要登录发现验证码挂了,开启了thinkphp的调试模式,定位出错误是:

Call to undefined function Think\imagettftext()
  • 1

错误位置

FILE: /Users/dimera/Sites/tpadmin/Libs/ThinkPHP/Library/Think/Verify.class.PHP  LINE: 143
  • 1

这个imagettftext()方法是在php的gd扩展中,因此先去php.ini 开启了gd扩展

用phpinfo探针定位到gd扩展:

有了gd扩展还什么还是报错呢,原因是因为在gd扩展中还应该有个freeType,因此我们需要安装freeType,但是即使安装了freeType,还得重新编译php,考虑到有可能带来其他问题,发现stackoverflow的大神已经自己写好了一个sh来帮我们,一键搞定这个问题:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5
  • 1

PS: 这个可能需要很长时间,要有耐心呦(亲测)

我的是5.5,你们可以选择自己的php版本
原答案:http://stackoverflow.com/questions/26443242/after-upgrade-php-no-longer-supports-png-operations

PS:当遇到谷歌也解决不了的问题,一定是程序员错了,哈哈

 

网上方法:https://blog.csdn.net/chenshuai1993/article/details/51886907

 

然后依然未解决,在执行上诉操作后

 

1.sudo find / -name libphp7.so

 

2.sudo vi /etc/apache2/httpd.conf

 

查找 LoadModule  

找到

 

替换路径为第1步找到的自己的libphp7.so路径

保存,成功

 

Mac下Call to undefined function imagettftext()终极解决方案

文章转载至Mac下Call to undefined function imagettftext()终极解决方案

安装了一套onethink程序准备调试,结果在登录页面发现验证码无法显示,单独访问验证码页面报错Call to undefined function imagettftext()。

使用搜索引擎查询了下,发现问题的关键是

gd未安装freetype,访问phpinfo.php文件发现

解决方案

缺点:不过phpinfo有植入广告哈

http://php-osx.liip.ch

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

可以通过phpinfo函数查看本机的php版本号再选择替换不迟

终端执行可能会很慢呀,无需开启vpn直接使用自家的宽带就可以更新了,我用的还是移动宽带哈

freetype安装成功

系统信息


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM