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 think\captcha\imagettftext()
这个问题我在去年遇到过,也解决了,去年记录的文章为: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
。
几个月之前我曾经使用该方法成功配置好环境,具体操作疏于记录。
此次我才用了一个新的方法,就是上文提到的那篇博文里的“一句话脚本” 。
由于服务器在亚马逊云,我一开始科学上网运行脚本,脚本运行了好久没有反应,我认为此法不通;但后来再试,经过漫长等待,终于装好了。
装好之后,记得把/etc/apache2/httpd.conf
中引入的php.so
文件换成新的:
LoadModule php7_module /usr/local/php5/libphp7.so
是的****/php5/libphp7.so
就这么神奇,,,可能之后会变吧,找一找,这个问题不大。
不过要注意的是这只换了apache
的php
,没有换cli
的,所以,在命令行中运行一些东西可能和apache
运行的效果有所不同,不过也很容易解决,不展开记录了。
最后,,装好之后,phpinfo()
中会有明显的提示,如下图。。
怎么说呢,,,丧心病狂的感觉。。。。。。