mac环境中使用brew安装php5.5.15
MAC本来就自带了 php,但是很多扩展没有安装,所以选择了重新安装php并升级到最新版,下面说说安装步骤,希望对大家有所帮助。
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