mac下其实已经安装好了PHP,而且版本还蛮新的,平时搞一搞开发,还是可以的,也没啥大问题,但是今天偶然发现一个验证码图片加载不了,函数报错:
PHP Fatal error: Call to undefined function imagettfbbox()
然后一搜索,发现是freetype
扩展在PHP编译的时候没加,由于这个扩展是核心内置扩展,没法通过phpize
来编译安装。解决办法只有一个,就是找到PHP的安装源码重新编译一下,在编译的时候,加上–with-freetype-dir
。
可是最蛋疼的是,Mac上PHP是内置的,根本就找不到它的安装源码在哪!所以,唯一的办法,就是下载新的PHP的源码包,完全完全新的编译安装一遍PHP。
我了个擦,这不是要了老命吗?各种扩展,各种参数,关键是PHP的编译时间巨长啊。
但是,你能想到的,牛人都想到了。所以一个神奇的命令诞生了,一句命令就可以安装好PHP制定的版本,最关键是它几乎安装好了所有的PHP扩展,什么redis,memcache啊都全部安装好了。而且不会覆盖你的Mac上的已经安装好的PHP。
就是这个网站: http://php-osx.liip.ch/
我想安装PHP5.6。所以,用下面一条命令就可以搞定PHP5.6:
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
这条命令执行后,会让你输入你的Mac密码,因为它需要安装各种扩展命令,输入完密码后,就静静的等吧,我好像等了一分钟吧,还是蛮快的,就安装好了。
.....
.....
Extracting usr/local/php5-5.6.11-20150710-223902/bin/uconv
Extracting usr/local/php5-5.6.11-20150710-223902/bin/vacuumdb
Extracting usr/local/php5-5.6.11-20150710-223902/bin/wrjpgcom
Extracting usr/local/php5-5.6.11-20150710-223902/bin/xgettext
Extracting usr/local/php5-5.6.11-20150710-223902/bin/xslt-config
Extracting usr/local/php5-5.6.11-20150710-223902/bin/xsltproc
Executing post-install script /tmp/5.6-10.10-frontenddev-post-install
Create symlink /usr/local/php5/entropy-php.conf /etc/apache2/other/+php-osx.conf
Restarting Apache
Syntax OK
它把PHP安装到了/usr/local/php5
目录下,是一个单独的目录,所以,不会影响到原先的PHP,这2个版本是共存的。完全不会影响到目前的PHP版本。
这个时候,你在终端中输入php -v
显示的还是老的版本,如果你想用新的版本的php。可以这样/usr/local/php5/bin/php -v
,这样很麻烦,可以将这个新的PHP路径追加到$path
中。
vi ~/.profile
//有就编辑,没有就新建一个这个文件名。
export PATH=/usr/local/php5/bin:/usr/local/php5/sbin:$PATH
//清除下缓存,使得它生效
source ~/.profile
这样,就将新版本的php
命令和php-fpm
命令都追加到$PATH
中,就可以在全局使用了。
全局运行下 :
~ php -v
PHP 5.6