OS X El Capitan 系统默认的 php 的版本是 5.5.30 gd 是不支持 freetype 的所以 一般的验证码程序都不支持 因为没法使用 imagettftext 函数,现在一般的解决方法是通过 Homebrew 安装其它版本的 php ,不用系统本身自带的。
我是个强迫症,所以找到一条可以通过覆盖安装,不用升级其它扩展到方式的来解决这个问题。
1 安装 Homebrew
ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
2 安装重新编译所需要的依赖库
brew install autoconf freetype libpng libtool gd jpeg libtiff openssl
3 做好软链接
brew link openssl --force
4 下载 php-5.5.30.tar.gz
cd ~
wget
http://mirrors.sohu.com/php/php-5.5.30.tar.gz
tar xzvf php-5.5.30.tar.gz
5 编译
cd php-5.5.30
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/private/etc --enable-cli --with-config-file-path=/etc --with-config-file-scan-dir=/Library/Server/Web/Config/php --with-libxml-dir=/usr --with-openssl=/usr/local --with-kerberos=/usr --with-zlib=/usr --enable-bcmath --with-bz2=/usr --enable-calendar --disable-cgi --with-curl=/usr --enable-dba --with-ndbm=/usr --enable-exif --enable-fpm --enable-ftp --with-icu-dir=/usr --with-ldap=/usr --with-ldap-sasl=/usr --with-libedit=/usr --enable-mbstring --enable-mbregex --with-mysql=mysqlnd --with-mysqli=mysqlnd --without-pear --with-pear=no --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/mysql/mysql.sock --with-readline=/usr --enable-shmop --with-snmp=/usr --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --enable-wddx --with-xmlrpc --with-iconv-dir=/usr --with-xsl=/usr --enable-zip --with-apxs2=/usr/sbin/apxs --enable-opcache --with-freetype-dir=/usr/local/Cellar --with-jpeg-dir=/usr/local/Cellar --with-png-dir=/usr/local/Cellar --with-gd
6 修改 makefile
vi Makefile
EXTRA_LIBS 的内容去掉所有的 -lssl -lcrypto ,再加上 ssl crpyto 库的地址
基本上是以下内容
EXTRA_LIBS = -lz -lexslt -ltidy -lresolv -ledit -lncurses -lldap -llber -liconv -liconv -lpng -lz -ljpeg -lcurl -lbz2 -lz -lm -lxml2 -lz -licucore -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lcurl -lxml2 -lz -licucore -lm -lfreetype -lxml2 -lz -licucore -lm -lnetsnmp -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lxslt -lm /usr/local/lib/libcrypto.dylib /usr/local/lib/libssl.dylib
7 编译
make
8 关闭系统保护
重启进入修复模式
重启后 按 cmd+R
进入终端控制台 csrutil disable
9 最后安装
cd php-5.5.30
sudo make install
10 开启系统保护
重启进入修复模式
重启后 按 cmd+R
进入终端控制台 csrutil enable
end