mac环境中使用brew安装php5.5.15


Posted in PHP onAugust 18, 2014

Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站: http://brew.sh
 
安装方法:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

使用以下方法可以查看brew是否安装成功,以及目前的版本:

liondeMacBook-Pro:~ lion$ brew -v
Homebrew 0.9.5

添加brew的PHP扩展库:

liondeMacBook-Pro:~ lion$ brew update
liondeMacBook-Pro:~ lion$ brew tap homebrew/dupes
liondeMacBook-Pro:~ lion$ brew tap homebrew/php
liondeMacBook-Pro:~ lion$ brew tap josegonzalez/homebrew-php

 
可以使用brew options php55命令查看安装时可以有哪些选项,因为我之前安装过curl、libxslt、openssl所以,在选项中会提示是否使用brew安装的相关扩展:

liondeMacBook-Pro:Library lion$ brew options php55
--disable-opcache
  Build without Opcache extension
--disable-zend-multibyte
  Disable auto-detection of Unicode encoded scripts (PHP 5.2 and 5.3 only)
--homebrew-apxs
  Build against apxs in Homebrew prefix
--with-apache
  Enable building of shared Apache 2.0 Handler module, overriding any options which disable apache
--with-cgi
  Enable building of the CGI executable (implies --without-apache)
--with-debug
  Compile with debugging symbols
--with-fpm
  Enable building of the fpm SAPI executable (implies --without-apache)
--with-gmp
  Build with gmp support
--with-homebrew-curl
  Include Curl support via Homebrew
--with-homebrew-libxslt
  Include LibXSLT support via Homebrew
--with-homebrew-openssl
  Include OpenSSL support via Homebrew
--with-imap
  Include IMAP extension
--with-intl
  Include internationalization support
--with-libmysql
  Include (old-style) libmysql support instead of mysqlnd
--with-mssql
  Include MSSQL-DB support
--with-pdo-oci
  Include Oracle databases (requries ORACLE_HOME be set)
--with-pgsql
  Include PostgreSQL support
--with-phpdbg
  Enable building of the phpdbg SAPI executable (PHP 5.4 and above)
--with-thread-safety
  Build with thread safety
--with-tidy
  Include Tidy support
--without-bz2
  Build without bz2 support
--without-mysql
  Remove MySQL/MariaDB support
--without-pcntl
  Build without Process Control support
--without-pear
  Build without PEAR
--HEAD
  install HEAD version

开始安装PHP5.5.15,安装后的php-fpm.ini以及php.ini都在目录:/usr/local/etc/php/5.5/下面

liondeMacBook-Pro:Library lion$ brew install php55 --with-mssql --with-homebrew-openssl --with-homebrew-libxslt --with-homebrew-curl --with-fpm --with-debug --with-gmp --with-imap --with-tidy --with-libmysql
==> Installing dependencies for php55: curl, freetds, gmp
==> Installing php55 dependency: curl
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/curl-7.37.1.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring curl-7.37.1.mavericks.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.
 
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
 
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
 
  LDFLAGS: -L/usr/local/opt/curl/lib
  CPPFLAGS: -I/usr/local/opt/curl/include
 
==> Summary
 /usr/local/Cellar/curl/7.37.1: 285 files, 2.8M
==> Installing php55 dependency: freetds
==> Downloading http://mirrors.ibiblio.org/freetds/stable/freetds-0.91.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/freetds/0.91 --with-openssl=/usr/local/opt/openssl --with-tdsver=7.1 --mandir=/usr
==> make
==> make install
 /usr/local/Cellar/freetds/0.91: 600 files, 9.9M, built in 2.2 minutes
==> Installing php55 dependency: gmp
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/gmp-6.0.0a.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring gmp-6.0.0a.mavericks.bottle.tar.gz
 /usr/local/Cellar/gmp/6.0.0a: 15 files, 3.2M
==> Installing php55
==> Downloading http://www.php.net/get/php-5.5.15.tar.bz2/from/this/mirror
Already downloaded: /Library/Caches/Homebrew/php55-5.5.15
==> ./configure --prefix=/usr/local/Cellar/php55/5.5.15 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/5.5 --
==> make
==> make install
==> /usr/local/Cellar/php55/5.5.15/bin/pear config-set php_ini /usr/local/etc/php/5.5/php.ini
==> Caveats
The php.ini file can be found in:
  /usr/local/etc/php/5.5/php.ini
 
✩✩✩✩ PEAR ✩✩✩✩
 
If PEAR complains about permissions, 'fix' the default PEAR permissions and config:
  chmod -R ug+w /usr/local/Cellar/php55/5.5.15/lib/php
  pear config-set php_ini /usr/local/etc/php/5.5/php.ini
 
✩✩✩✩ Extensions ✩✩✩✩
 
If you are having issues with custom extension compiling, ensure that
you are using the brew version, by placing /usr/local/bin before /usr/sbin in your PATH:
 
   PATH="/usr/local/bin:$PATH"
 
PHP55 Extensions will always be compiled against this PHP. Please install them
using --without-homebrew-php to enable compiling against system PHP.
 
✩✩✩✩ PHP CLI ✩✩✩✩
 
If you wish to swap the PHP you use on the command line, you should add the following to ~/.bashrc,
~/.zshrc, ~/.profile or your shell's equivalent configuration file:
 
   export PATH="$(brew --prefix homebrew/php/php55)/bin:$PATH"
 
✩✩✩✩ FPM ✩✩✩✩
 
To launch php-fpm on startup:
  * If this is your first install:
    mkdir -p ~/Library/LaunchAgents
    cp /usr/local/Cellar/php55/5.5.15/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
 
  * If this is an upgrade and you already have the homebrew.mxcl.php55.plist loaded:
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
    cp /usr/local/Cellar/php55/5.5.15/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
 
The control script is located at /usr/local/Cellar/php55/5.5.15/sbin/php55-fpm
 
Mountain Lion comes with php-fpm pre-installed, to ensure you are using the brew version you need to make sure /usr/local/sbin is before /usr/sbin in your PATH:
 
 PATH="/usr/local/sbin:$PATH"
 
You may also need to edit the plist to use the correct "UserName".
 
Please note that the plist was called 'homebrew-php.josegonzalez.php55.plist' in old versions
of this formula.
 
To have launchd start php55 at login:
  ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
Then to load php55 now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
==> Summary
 /usr/local/Cellar/php55/5.5.15: 477 files, 43M, built in 3.9 minutes

过程中如果出现configure: error: Cannot find OpenSSL's <evp.h>这样的错误,请执行以下命令,将xcode进行更新:

xcode-select --install

在PHP5安装完成的提示中写到,如何进行PHP5和mac自带的php以及php-fpm替换,执行以下命令后,我们可以看到当前的php版本已经是最新的了:

liondeMacBook-Pro:~ lion$ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
liondeMacBook-Pro:~ lion$ echo 'export PATH=/usr/sbin:$PATH' >> ~/.bash_profile
liondeMacBook-Pro:~ lion$ echo 'export PATH=/usr/local/sbin:$PATH' >> ~/.bash_profile
liondeMacBook-Pro:~ lion$ source ~/.bash_profile 
liondeMacBook-Pro:~ lion$ php -v
PHP 5.5.15 (cli) (built: Aug 14 2014 15:37:16) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
liondeMacBook-Pro:~ lion$

 
使用brew search php55-命令,可以查看还有哪些扩展可以安装,然后执行brew install php55-XXX就可以了。

liondeMacBook-Pro:~ lion$ brew search php55-
php55-amqp    php55-igbinary    php55-msgpack    php55-runkit     php55-varnish
php55-apcu    php55-imagick    php55-mysqlnd_ms   php55-scrypt     php55-vld
php55-augmentedtypes   php55-inclued    php55-oauth     php55-snappy     php55-wbxml
php55-binpack    php55-intl    php55-opcache    php55-solr      php55-xcache
php55-blitz   php55-ioncubeloader   php55-parsekit    php55-sphinx     php55-xdebug
php55-boxwood    php55-jsmin     php55-pcntl     php55-spl-types   php55-xhgui
php55-chdb    php55-judy    php55-pdflib     php55-ssh2      php55-xhp
php55-couchbase   php55-leveldb    php55-pdo-dblib   php55-stats     php55-xhprof
php55-crypto     php55-libevent    php55-pdo-pgsql   php55-stemmer    php55-xmldiff
php55-dbase   php55-libvirt    php55-phalcon    php55-sundown    php55-yac
php55-dbus    php55-lz4    php55-proctitle   php55-svm      php55-yaf
php55-dmtx    php55-lzf    php55-propro     php55-swoole     php55-yaml
php55-ev     php55-mailparse   php55-protobuf    php55-thrift     php55-yar
php55-gearman    php55-mcrypt     php55-pspell     php55-tidy      php55-yaz
php55-geoip   php55-memcache    php55-pthreads    php55-timezonedb   php55-yp
php55-gmagick    php55-memcached   php55-raphf     php55-tokyotyrant    php55-yrmcds
php55-graphdat    php55-midgard2    php55-redis     php55-twig      php55-zmq
php55-htscanner   php55-mongo     php55-redland    php55-uploadprogress   php55-zookeeper
php55-http    php55-mosquitto   php55-riak      php55-uuid

我安装的是以下php5.5几个扩展:

liondeMacBook-Pro:~ lion$ brew install php55-imagick php55-igbinary php55-ev php55-gmagick php55-geoip php55-memcache php55-memcached php55-thrift php55-xdebug php55-sphinx composer

接下来我们测试php-fpm的配置是否正确,以及是否正确启动:

#测试php-fpm配置是否正确
liondeMacBook-Pro:bin lion$ php-fpm -t
[14-Aug-2014 16:14:30] NOTICE: configuration file /usr/local/etc/php/5.5/php-fpm.conf test is successful
liondeMacBook-Pro:bin lion$ php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -t
[14-Aug-2014 16:14:48] NOTICE: configuration file /usr/local/etc/php/5.5/php-fpm.conf test is successful
 
#启动php-fpm
liondeMacBook-Pro:bin lion$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
 
#查看9000端口是否在运行
liondeMacBook-Pro:bin lion$ lsof -i:9000
COMMAND  PID USER  FD  TYPE       DEVICE SIZE/OFF NODE NAME
php-fpm 51241 lion  8u IPv4 0xce9d0f6417637937   0t0 TCP localhost:cslistener (LISTEN)
php-fpm 51243 lion  0u IPv4 0xce9d0f6417637937   0t0 TCP localhost:cslistener (LISTEN)
php-fpm 51244 lion  0u IPv4 0xce9d0f6417637937   0t0 TCP localhost:cslistener (LISTEN)
php-fpm 51245 lion  0u IPv4 0xce9d0f6417637937   0t0 TCP localhost:cslistener (LISTEN)
 
#关闭掉php-fpm进程,再查看9000端口,没有监听了
liondeMacBook-Pro:bin lion$ ps aux|grep php-fpm|grep -v 'grep'|awk '{print $2}'|xargs kill -9
liondeMacBook-Pro:bin lion$ lsof -i:9000
liondeMacBook-Pro:bin lion$

设置PHP-FPM开机运行(其实在安装完成的提示中,也有说明):

ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
PHP 相关文章推荐
php 字符转义 注意事项
May 27 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
php二分查找二种实现示例
Mar 12 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
Yii 框架入口脚本示例分析
May 19 PHP
php实现JWT验证的实例教程
Nov 26 PHP
PHP 正则表达式常用函数
Aug 17 #PHP
PHP常用正则表达式集锦
Aug 17 #PHP
学习php中的正则表达式
Aug 17 #PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 #PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 #PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 #PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 #PHP
You might like
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php strftime函数的详细用法
2018/06/21 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
jQuery参数列表集合
2011/04/06 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python 循环语句之 while,for语句详解
2018/04/23 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python双向链表原理与实现方法详解
2019/12/03 Python
Django中的session用法详解
2020/03/09 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
方正Java笔试题
2014/07/03 面试题
外贸英语专业求职信范文
2013/12/25 职场文书
广播体操口号
2014/06/18 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2014年电厂工作总结
2014/12/04 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python