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