mac缺少imagettftext()、freetype问题随笔
macOS自带php的gd库有些问题,当用到imagettftext() 和 freetype 相关功能时会出问题,我遇到的问题是:
在使用TinkPHP的 topthink/think-captcha 时,验证码图片无法正常显示,ThinkPHP中log 信息为:
[ 2017-12-28T16:38:06+08:00 ] 127.0.0.1 GET /captcha.html
[ error ] [0]致命错误: Call to undefined function thinkcaptchaimagettftext()
这个问题我在去年遇到过,也解决了,去年记录的文章为:macos缺少freetype终极解决方案
但是过了一年,macOS和Homebrew 都发生了一些变化,所以原来的方法就不那么行得通了。
去年我使用的是
brew install php56 --with-apche --with-freetype
结果今年--with-apache 不好使了,变成了--with-httpd ,也就是
brew install php72 --with-httpd --with-freetype
但一切正常安装完成之后,却发现没有生成apache LoadMoule 所需要的 .so 文件,查看github相关issue ,发现这是一个共性问题,迫于无奈,只好选择nginx 。
几个月之前我曾经使用该方法成功配置好环境,具体操作疏于记录。
此次我才用了一个新的方法,就是上文提到的那篇博文里的“一句话脚本” 。
链接 : https://php-osx.liip.ch
由于服务器在亚马逊云,我一开始科学上网运行脚本,脚本运行了好久没有反应,我认为此法不通;但后来再试,经过漫长等待,终于装好了。
装好之后,记得把/etc/apache2/httpd.conf中引入的php.so文件换成新的:
LoadModule php7_module /usr/local/php5/libphp7.so
是的****/php5/libphp7.so 就这么神奇,,,可能之后会变吧,找一找,这个问题不大。
不过要注意的是这只换了apache 的php,没有换cli 的,所以,在命令行中运行一些东西可能和apache运行的效果有所不同,不过也很容易解决,不展开记录了。
最后,,装好之后,phpinfo() 中会有明显的提示,如下图。。
怎么说呢,,,丧心病狂的感觉。。。。。。
- 上一篇:没有了
- 下一篇: mac(osx)配置apache+mysql+php+phpmyadmin
