mac brew 替换原生php,Mac下通过 brew 安装不同版本的php

本文档介绍了如何在Mac OS X 10.9.5系统中通过Homebrew安装和管理多个PHP版本,特别是如何在不删除系统预装PHP的情况下,安装PHP 5.3。首先,需要安装Homebrew,然后利用其安装PHP 5.3,同时保持系统自带的PHP 5.4。在安装过程中,需要注意配置Apache以使用新安装的PHP版本,并添加环境变量到PATH。最后,文章提供了卸载和测试PHP版本的方法。
摘要由CSDN通过智能技术生成

正 文:

MAC OS X 10.9.5系统里已经自带了 apache  和 php ,只是默认没有启用,我们将他们启用即可。

APACHE的默认版本是 Apache/2.2.26 (Unix),php版本是PHP 5.4.30。

由于调试程序需要,我需要同时安装低版本的php5.3,但是又不希望删除系统预装的php 5.4,或升级/降级系统的php5.4,那么怎么办呢?这个时候,就可以通过brew的方式安装新的php版本。

第一步,先安装 brew

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

在mac下终端里直接输入命令行:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完成之后,建议执行一下自检:brew doctor 如果看到Your system is ready to brew. 那么你的brew已经可以开始使用了。

常用命令: (所有软件以PHP5.5为例子)

brew update                        #更新brew可安装包,建议每次执行一下

brew search php55                  #搜索php5.5

brew tap josegonzalez/php          #安装扩展

brew tap                           #查看安装的扩展列表

brew install php55                 #安装php5.5

brew remove  php55                 #卸载php5.5

brew upgrade php55                 #升级php5.5

brew options php55                 #查看php5.5安装选项

brew info    php55                 #查看php5.5相关信息

brew home    php55                 #访问php5.5官方网站

brew services list                 #查看系统通过 brew 安装的服务

brew services cleanup              #清除已卸载无用的启动配置文件

brew services restart php55        #重启php-fpm

第二步,安装PHP

先添加brew的PHP扩展库:

brew update

brew tap homebrew/dupes

brew tap homebrew/php

brew tap josegonzalez/homebrew-php

可以使用 brew options php53 命令来查看安装php5.3的选项,这里我用下面的选项安装:

brew install php53 --with-apache --with-gmp --with-imap --with-tidy --with-debug

请注意:如果你希望以mac下的apache作为web server,编译时要加 --with-apache;如果你的web server 是 nginx这类,就需要加上 --with-fpm。

Options

--disable-opcache

Build without Opcache extension

--disable-zend-multibyte

Disable auto-detection of Unicode encoded scripts

--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-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-phpdbg

Enable building of the phpdbg SAPI executable (PHP 5.4 and above)

--with-postgresql

Build with postgresql support

--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

--without-snmp

Build without SNmp support

--HEAD

Install HEAD version

PHP编译过程中如果遇到 configure: error: Cannot find OpenSSL's  错误,执行 xcode-select --install 重新安装一下 Xcode Command Line Tools 即可解决该错误(来源:https://github.com/Homebrew/homebrew-php/issues/1181)。

安装完php后,会有一段提示,请仔细阅读:

Caveats

To enable PHP in Apache add the following to httpd.conf and restart Apache:

LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so

The php.ini file can be found in:

/usr/local/etc/php/5.3/php.ini

✩✩✩✩ PEAR ✩✩✩✩

If PEAR complains about permissions, 'fix' the default PEAR permissions and config:

chmod -R ug+w /usr/local/Cellar/php53/5.3.29/lib/php

pear config-set php_ini /usr/local/etc/php/5.3/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"

PHP53 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/php53)/bin:$PATH"

To have launchd start php53 at login:

ln -sfv /usr/local/opt/php53/*.plist ~/Library/LaunchAgents

Then to load php53 now:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php53.plist

==> Summary

/usr/local/Cellar/php53/5.3.29: 480 files, 31M, built in 12.9 minutes

等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中 brew会自动安装依赖包,使用 brew search php53- 命令,可以查看还有哪些扩展可以安装,然后执行 brew install php53-XXX 就可以了。

由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本:

echo 'export PATH="$(brew --prefix homebrew/php/php53)/bin:$PATH"' >> ~/.bash_profile  #for php

echo 'export PATH="$(brew --prefix homebrew/php/php53)/sbin:$PATH"' >> ~/.bash_profile  #for php-fpm

echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile #for other brew install soft

source ~/.bash_profile  #更新配置

如何卸载安装的 php5.3呢?

# 卸载

brew uninstall php53

# 清除缓存以及老旧版本文件

brew cleanup -s

测试一下效果:

$ php -v

PHP 5.3.29 (cli) (built: Jan 24 2015 12:40:58) (DEBUG)

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies

# mac系统自带的php

$ /usr/bin/php -v

PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

由于我们没有安装php的fpm模式,所以 php-fpm -v 命令显示的是mac自带的:

$ php-fpm -v

PHP 5.4.30 (fpm-fcgi) (built: Jul 29 2014 23:44:15)

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

这个时候,我们使用 phpinfo 函数显示出来的php版本还是max自带的PHP5.4,需要我们修改 apache的配置文件 httpd.conf,加载的php5模块路径指向刚刚安装的 php5.3目录里的 libphp5.so:

LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so

重启apache,phpinfo() 脚本里显示的 php 版本就变成了 PHP Version 5.3.29。

【参考:】

* 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNmp开发环境)

* 通过homebrew升级PHP至5.6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值